perf bpf filter: Add more weight sample data support
The weight data consists of a couple of fields with the PERF_SAMPLE_WEIGHT_STRUCT. Add weight{1,2,3} term to select them separately. Also add their aliases like 'ins_lat', 'p_stage_cyc' and 'retire_lat'. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Jiri Olsa <jolsa@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Hao Luo <haoluo@google.com> Cc: Ian Rogers <irogers@google.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: James Clark <james.clark@arm.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Leo Yan <leo.yan@linaro.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ravi Bangoria <ravi.bangoria@amd.com> Cc: Song Liu <song@kernel.org> Cc: Stephane Eranian <eranian@google.com> Cc: bpf@vger.kernel.org Link: https://lore.kernel.org/r/20230314234237.3008956-2-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
335818470f
commit
409bcd8067
|
@ -71,6 +71,12 @@ addr { return sample(PERF_SAMPLE_ADDR); }
|
|||
period { return sample(PERF_SAMPLE_PERIOD); }
|
||||
txn { return sample(PERF_SAMPLE_TRANSACTION); }
|
||||
weight { return sample(PERF_SAMPLE_WEIGHT); }
|
||||
weight1 { return sample_part(PERF_SAMPLE_WEIGHT_STRUCT, 1); }
|
||||
weight2 { return sample_part(PERF_SAMPLE_WEIGHT_STRUCT, 2); }
|
||||
weight3 { return sample_part(PERF_SAMPLE_WEIGHT_STRUCT, 3); }
|
||||
ins_lat { return sample_part(PERF_SAMPLE_WEIGHT_STRUCT, 2); } /* alias for weight2 */
|
||||
p_stage_cyc { return sample_part(PERF_SAMPLE_WEIGHT_STRUCT, 3); } /* alias for weight3 */
|
||||
retire_lat { return sample_part(PERF_SAMPLE_WEIGHT_STRUCT, 3); } /* alias for weight3 */
|
||||
phys_addr { return sample(PERF_SAMPLE_PHYS_ADDR); }
|
||||
code_pgsz { return sample(PERF_SAMPLE_CODE_PAGE_SIZE); }
|
||||
data_pgsz { return sample(PERF_SAMPLE_DATA_PAGE_SIZE); }
|
||||
|
|
|
@ -54,6 +54,14 @@ static inline __u64 perf_get_sample(struct bpf_perf_event_data_kern *kctx,
|
|||
return kctx->data->period;
|
||||
case PERF_SAMPLE_TRANSACTION:
|
||||
return kctx->data->txn;
|
||||
case PERF_SAMPLE_WEIGHT_STRUCT:
|
||||
if (entry->part == 1)
|
||||
return kctx->data->weight.var1_dw;
|
||||
if (entry->part == 2)
|
||||
return kctx->data->weight.var2_w;
|
||||
if (entry->part == 3)
|
||||
return kctx->data->weight.var3_w;
|
||||
/* fall through */
|
||||
case PERF_SAMPLE_WEIGHT:
|
||||
return kctx->data->weight.full;
|
||||
case PERF_SAMPLE_PHYS_ADDR:
|
||||
|
|
Loading…
Reference in New Issue