All, I discovered a merge problem to perf-tools-next. V4 is submitted.
Steve C.
On 8/27/2024 6:50 PM, Steve Clevenger wrote:
Add map_pgoff parameter to python dictionary so it can be seen by the python script, arm-cs-trace-disasm.py. map_pgoff is forced to zero in the dictionary if file type is MAPPING_TYPE__IDENTITY. Otherwise, the map_pgoff value is directly added to the dictionary.
Signed-off-by: Steve Clevenger scclevenger@os.amperecomputing.com
.../util/scripting-engines/trace-event-python.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/scripting-engines/trace-event-python.c b/tools/perf/util/scripting-engines/trace-event-python.c index 6971dd6c231f..74b66692e3a3 100644 --- a/tools/perf/util/scripting-engines/trace-event-python.c +++ b/tools/perf/util/scripting-engines/trace-event-python.c @@ -798,7 +798,8 @@ static int set_regs_in_dict(PyObject *dict, static void set_sym_in_dict(PyObject *dict, struct addr_location *al, const char *dso_field, const char *dso_bid_field, const char *dso_map_start, const char *dso_map_end,
const char *sym_field, const char *symoff_field)
const char *sym_field, const char *symoff_field,
const char *map_pgoff)
{ char sbuild_id[SBUILD_ID_SIZE]; @@ -814,6 +815,12 @@ static void set_sym_in_dict(PyObject *dict, struct addr_location *al, PyLong_FromUnsignedLong(map__start(al->map))); pydict_set_item_string_decref(dict, dso_map_end, PyLong_FromUnsignedLong(map__end(al->map)));
if (al->map->mapping_type == MAPPING_TYPE__DSO)
pydict_set_item_string_decref(dict, map_pgoff,
PyLong_FromUnsignedLongLong(al->map->pgoff));
else
pydict_set_item_string_decref(dict, map_pgoff,
} if (al->sym) { pydict_set_item_string_decref(dict, sym_field,PyLong_FromUnsignedLongLong(0));
@@ -900,8 +907,8 @@ static PyObject *get_perf_sample_dict(struct perf_sample *sample, pydict_set_item_string_decref(dict, "comm", _PyUnicode_FromString(thread__comm_str(al->thread))); set_sym_in_dict(dict, al, "dso", "dso_bid", "dso_map_start", "dso_map_end",
"symbol", "symoff");
"symbol", "symoff", "map_pgoff");
- pydict_set_item_string_decref(dict, "callchain", callchain);
brstack = python_process_brstack(sample, al->thread);