Re: [PATCH] perf script python: Add the ins_lat field to event handler
From: Adrian Hunter
Date: Thu Aug 08 2024 - 07:12:58 EST
On 8/08/24 11:00, Zixian Cai wrote:
> For example, when using the Alder Lake PMU memory load event, the
> instruction latency is stored in ins_lat, while the cache latency is
> stored in weight.
>
> This patch reports the ins_lat field for Python scripting.
Patch does not apply.
Needs to be based on upstream kernel. Latest perf tools kernel
tree and branch is:
git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git perf-tools-next
>
> Signed-off-by: Zixian Cai <fzczx123@xxxxxxxxx>
> ---
> tools/perf/util/scripting-engines/trace-event-python.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c
> index 41d4f9e6a..68eb0586c 100644
> --- a/tools/perf/util/scripting-engines/trace-event-python.c
> +++ b/tools/perf/util/scripting-engines/trace-event-python.c
> @@ -861,6 +861,8 @@ static PyObject *get_perf_sample_dict(struct perf_sample *sample,
> set_sample_read_in_dict(dict_sample, sample, evsel);
> pydict_set_item_string_decref(dict_sample, "weight",
> PyLong_FromUnsignedLongLong(sample->weight));
> + pydict_set_item_string_decref(dict_sample, "ins_lat",
> + PyLong_FromUnsignedLongLong(sample->ins_lat));
> pydict_set_item_string_decref(dict_sample, "transaction",
> PyLong_FromUnsignedLongLong(sample->transaction));
> set_sample_datasrc_in_dict(dict_sample, sample);
> @@ -1286,7 +1288,7 @@ static void python_export_sample_table(struct db_export *dbe,
> struct tables *tables = container_of(dbe, struct tables, dbe);
> PyObject *t;
>
> - t = tuple_new(25);
> + t = tuple_new(26);
>
> tuple_set_d64(t, 0, es->db_id);
> tuple_set_d64(t, 1, es->evsel->db_id);
> @@ -1313,6 +1315,7 @@ static void python_export_sample_table(struct db_export *dbe,
> tuple_set_d64(t, 22, es->sample->insn_cnt);
> tuple_set_d64(t, 23, es->sample->cyc_cnt);
> tuple_set_s32(t, 24, es->sample->flags);
> + tuple_set_s32(t, 25, es->sample->ins_lat);
>
> call_object(tables->sample_handler, t, "sample_table");
>
> --
> 2.25.1
>