mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-13 12:02:27 -04:00
perf vendor events powerpc: Update datasource event name to fix duplicate events
Running "perf list" on powerpc fails with segfault as below:
$ ./perf list
Segmentation fault (core dumped)
$
This happens because of duplicate events in the JSON list. The powerpc
JSON event list contains some event with same event name, but different
event code. They are:
- PM_INST_FROM_L3MISS (Present in datasource and frontend)
- PM_MRK_DATA_FROM_L2MISS (Present in datasource and marked)
- PM_MRK_INST_FROM_L3MISS (Present in datasource and marked)
- PM_MRK_DATA_FROM_L3MISS (Present in datasource and marked)
pmu_events_table__num_events() uses the value from table_pmu->num_entries
which includes duplicate events as well. This causes issue during "perf
list" and results in a segmentation fault.
Since both event codes are valid, append _DSRC to the Data Source events
(datasource.json), so that they would have a unique name.
Also add PM_DATA_FROM_L2MISS_DSRC and PM_DATA_FROM_L3MISS_DSRC events.
With the fix, 'perf list' works as expected.
Fixes: fc14358075 ("perf vendor events power10: Update JSON/events")
Signed-off-by: Athira Jajeev <atrajeev@linux.vnet.ibm.com>
Tested-by: Disha Goel <disgoel@linux.ibm.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Disha Goel <disgoel@linux.vnet.ibm.com>
Cc: Ian Rogers <irogers@google.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20231123160110.94090-1-atrajeev@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
7d723ef83b
commit
9eef41014f
@@ -99,6 +99,11 @@
|
||||
"EventName": "PM_INST_FROM_L2MISS",
|
||||
"BriefDescription": "The processor's instruction cache was reloaded from a source beyond the local core's L2 due to a demand miss."
|
||||
},
|
||||
{
|
||||
"EventCode": "0x0003C0000000C040",
|
||||
"EventName": "PM_DATA_FROM_L2MISS_DSRC",
|
||||
"BriefDescription": "The processor's L1 data cache was reloaded from a source beyond the local core's L2 due to a demand miss."
|
||||
},
|
||||
{
|
||||
"EventCode": "0x000380000010C040",
|
||||
"EventName": "PM_INST_FROM_L2MISS_ALL",
|
||||
@@ -161,9 +166,14 @@
|
||||
},
|
||||
{
|
||||
"EventCode": "0x000780000000C040",
|
||||
"EventName": "PM_INST_FROM_L3MISS",
|
||||
"EventName": "PM_INST_FROM_L3MISS_DSRC",
|
||||
"BriefDescription": "The processor's instruction cache was reloaded from beyond the local core's L3 due to a demand miss."
|
||||
},
|
||||
{
|
||||
"EventCode": "0x0007C0000000C040",
|
||||
"EventName": "PM_DATA_FROM_L3MISS_DSRC",
|
||||
"BriefDescription": "The processor's L1 data cache was reloaded from beyond the local core's L3 due to a demand miss."
|
||||
},
|
||||
{
|
||||
"EventCode": "0x000780000010C040",
|
||||
"EventName": "PM_INST_FROM_L3MISS_ALL",
|
||||
@@ -981,7 +991,7 @@
|
||||
},
|
||||
{
|
||||
"EventCode": "0x0003C0000000C142",
|
||||
"EventName": "PM_MRK_DATA_FROM_L2MISS",
|
||||
"EventName": "PM_MRK_DATA_FROM_L2MISS_DSRC",
|
||||
"BriefDescription": "The processor's L1 data cache was reloaded from a source beyond the local core's L2 due to a demand miss for a marked instruction."
|
||||
},
|
||||
{
|
||||
@@ -1046,12 +1056,12 @@
|
||||
},
|
||||
{
|
||||
"EventCode": "0x000780000000C142",
|
||||
"EventName": "PM_MRK_INST_FROM_L3MISS",
|
||||
"EventName": "PM_MRK_INST_FROM_L3MISS_DSRC",
|
||||
"BriefDescription": "The processor's instruction cache was reloaded from beyond the local core's L3 due to a demand miss for a marked instruction."
|
||||
},
|
||||
{
|
||||
"EventCode": "0x0007C0000000C142",
|
||||
"EventName": "PM_MRK_DATA_FROM_L3MISS",
|
||||
"EventName": "PM_MRK_DATA_FROM_L3MISS_DSRC",
|
||||
"BriefDescription": "The processor's L1 data cache was reloaded from beyond the local core's L3 due to a demand miss for a marked instruction."
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user