Due to the hardware limitation, sometimes it could sample kernel address while attr.exclude_kernel is set. In that case it silently drops the sample. Let's count that case in the new dropped_samples counter.
Reviewed-by: Madhavan Srinivasan <ma...@linux.ibm.com> Cc: Michael Ellerman <m...@ellerman.id.au> Cc: Nicholas Piggin <npig...@gmail.com> Cc: Christophe Leroy <christophe.le...@csgroup.eu> Cc: Naveen N Rao <nav...@kernel.org> Cc: Kajol Jain <kj...@linux.ibm.com> Cc: Athira Rajeev <atraj...@linux.vnet.ibm.com> Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Namhyung Kim <namhy...@kernel.org> --- arch/powerpc/perf/core-book3s.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c index 42867469752d73cf..553e288b9f113836 100644 --- a/arch/powerpc/perf/core-book3s.c +++ b/arch/powerpc/perf/core-book3s.c @@ -2287,8 +2287,10 @@ static void record_and_restart(struct perf_event *event, unsigned long val, */ if (event->attr.exclude_kernel && (event->attr.sample_type & PERF_SAMPLE_IP) && - is_kernel_addr(mfspr(SPRN_SIAR))) + is_kernel_addr(mfspr(SPRN_SIAR))) { + atomic64_inc(&event->dropped_samples); record = 0; + } /* * Finally record data if requested. -- 2.47.0.105.g07ac214952-goog