kernel-hacking-2024-linux-s.../arch/powerpc/perf
Anjali K 0300a92e96 powerpc/perf: Set cpumode flags using sample address
Currently in some cases, when the sampled instruction address register
latches to a specific address during sampling, the privilege bits
captured in the sampled event register are incorrect.

For example, a snippet from the perf report on a power10 system is:

  Overhead  Address             Command       Shared Object      Symbol
  ........  ..................  ............  .................  .......................
       2.41%  0x7fff9f94a02c      null_syscall  [unknown]          [k] 0x00007fff9f94a02c
       2.20%  0x7fff9f94a02c      null_syscall  libc.so.6          [.] syscall

perf_get_misc_flags() function looks at the privilege bits to return
the corresponding flags to be used for the address symbol and these
privilege bit details are read from the sampled event register. In the
above snippet, address "0x00007fff9f94a02c" is shown as "k" (kernel) due
to the incorrect privilege bits captured in the sampled event register.

To address this case check whether the sampled address is in the kernel
area. Since this is specific to the latest platform, a new pmu flag
is added called "PPMU_P10" and is used to contain the proposed fix.
PPMU_P10_DD1 marked events are also included under PPMU_P10, hence
remove the code specific to PPMU_P10_DD1 marked events.

Signed-off-by: Anjali K <anjalik@linux.ibm.com>
Reviewed-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com <mailto:atrajeev@linux.vnet.ibm.com>>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240528040356.2722275-1-anjalik@linux.ibm.com
2024-06-17 22:47:16 +10:00
..
req-gen
8xx-pmu.c
bhrb.S
callchain.c
callchain.h
callchain_32.c
callchain_64.c
core-book3s.c powerpc/perf: Set cpumode flags using sample address 2024-06-17 22:47:16 +10:00
core-fsl-emb.c
e500-pmu.c
e6500-pmu.c
generic-compat-pmu.c
hv-24x7-catalog.h
hv-24x7-domains.h
hv-24x7.c driver core: Add device_show_string() helper for sysfs attributes 2024-05-04 17:37:03 +02:00
hv-24x7.h
hv-common.c
hv-common.h
hv-gpci-requests.h
hv-gpci.c powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks 2024-03-03 23:05:21 +11:00
hv-gpci.h
imc-pmu.c
internal.h powerpc/perf: Power11 Performance Monitoring support 2024-02-21 23:11:00 +11:00
isa207-common.c
isa207-common.h
Makefile
mpc7450-pmu.c
perf_regs.c
power5+-pmu.c
power5-pmu.c
power6-pmu.c
power7-events-list.h
power7-pmu.c
power8-events-list.h
power8-pmu.c
power9-events-list.h
power9-pmu.c
power10-events-list.h
power10-pmu.c powerpc/perf: Set cpumode flags using sample address 2024-06-17 22:47:16 +10:00
ppc970-pmu.c