mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-11 05:55:20 +07:00
perf auxtrace: Add perf time interval to itrace_synth_ops
Instruction trace decoders can optimize output based on what time intervals will be filtered, so pass that information in itrace_synth_ops. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Jin Yao <yao.jin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Link: http://lkml.kernel.org/r/20190604130017.31207-2-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
87407fa58b
commit
33526f362b
@ -83,6 +83,8 @@ enum itrace_period_type {
|
|||||||
* @period_type: 'instructions' events period type
|
* @period_type: 'instructions' events period type
|
||||||
* @initial_skip: skip N events at the beginning.
|
* @initial_skip: skip N events at the beginning.
|
||||||
* @cpu_bitmap: CPUs for which to synthesize events, or NULL for all
|
* @cpu_bitmap: CPUs for which to synthesize events, or NULL for all
|
||||||
|
* @ptime_range: time intervals to trace or NULL
|
||||||
|
* @range_num: number of time intervals to trace
|
||||||
*/
|
*/
|
||||||
struct itrace_synth_opts {
|
struct itrace_synth_opts {
|
||||||
bool set;
|
bool set;
|
||||||
@ -107,6 +109,8 @@ struct itrace_synth_opts {
|
|||||||
enum itrace_period_type period_type;
|
enum itrace_period_type period_type;
|
||||||
unsigned long initial_skip;
|
unsigned long initial_skip;
|
||||||
unsigned long *cpu_bitmap;
|
unsigned long *cpu_bitmap;
|
||||||
|
struct perf_time_interval *ptime_range;
|
||||||
|
int range_num;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -599,6 +603,21 @@ static inline void auxtrace__free(struct perf_session *session)
|
|||||||
" PERIOD[ns|us|ms|i|t]: specify period to sample stream\n" \
|
" PERIOD[ns|us|ms|i|t]: specify period to sample stream\n" \
|
||||||
" concatenate multiple options. Default is ibxwpe or cewp\n"
|
" concatenate multiple options. Default is ibxwpe or cewp\n"
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void itrace_synth_opts__set_time_range(struct itrace_synth_opts *opts,
|
||||||
|
struct perf_time_interval *ptime_range,
|
||||||
|
int range_num)
|
||||||
|
{
|
||||||
|
opts->ptime_range = ptime_range;
|
||||||
|
opts->range_num = range_num;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void itrace_synth_opts__clear_time_range(struct itrace_synth_opts *opts)
|
||||||
|
{
|
||||||
|
opts->ptime_range = NULL;
|
||||||
|
opts->range_num = 0;
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -742,6 +761,21 @@ void auxtrace_mmap_params__set_idx(struct auxtrace_mmap_params *mp,
|
|||||||
|
|
||||||
#define ITRACE_HELP ""
|
#define ITRACE_HELP ""
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void itrace_synth_opts__set_time_range(struct itrace_synth_opts *opts
|
||||||
|
__maybe_unused,
|
||||||
|
struct perf_time_interval *ptime_range
|
||||||
|
__maybe_unused,
|
||||||
|
int range_num __maybe_unused)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void itrace_synth_opts__clear_time_range(struct itrace_synth_opts *opts
|
||||||
|
__maybe_unused)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user