perf script python: Add machine_pid and vcpu
authorAdrian Hunter <adrian.hunter@intel.com>
Mon, 11 Jul 2022 09:32:01 +0000 (12:32 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 20 Jul 2022 14:08:21 +0000 (11:08 -0300)
Add machine_pid and vcpu to python sample events and context switch events.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Ian Rogers <irogers@google.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: kvm@vger.kernel.org
Link: https://lore.kernel.org/r/20220711093218.10967-19-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/scripting-engines/trace-event-python.c

index 3367c54791999f89171eca553f567802eeacc0e7..5bbc1b16f3687fad21b65e942475713358a5f39c 100644 (file)
@@ -861,6 +861,13 @@ static PyObject *get_perf_sample_dict(struct perf_sample *sample,
        brstacksym = python_process_brstacksym(sample, al->thread);
        pydict_set_item_string_decref(dict, "brstacksym", brstacksym);
 
+       if (sample->machine_pid) {
+               pydict_set_item_string_decref(dict_sample, "machine_pid",
+                               _PyLong_FromLong(sample->machine_pid));
+               pydict_set_item_string_decref(dict_sample, "vcpu",
+                               _PyLong_FromLong(sample->vcpu));
+       }
+
        pydict_set_item_string_decref(dict_sample, "cpumode",
                        _PyLong_FromLong((unsigned long)sample->cpumode));
 
@@ -1509,7 +1516,7 @@ static void python_do_process_switch(union perf_event *event,
                np_tid = event->context_switch.next_prev_tid;
        }
 
-       t = tuple_new(9);
+       t = tuple_new(11);
        if (!t)
                return;
 
@@ -1522,6 +1529,8 @@ static void python_do_process_switch(union perf_event *event,
        tuple_set_s32(t, 6, machine->pid);
        tuple_set_bool(t, 7, out);
        tuple_set_bool(t, 8, out_preempt);
+       tuple_set_s32(t, 9, sample->machine_pid);
+       tuple_set_s32(t, 10, sample->vcpu);
 
        call_object(handler, t, handler_name);