diff options
author | Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> | 2021-06-01 15:01:50 +0300 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2021-06-03 16:47:26 +0300 |
commit | 2e38eb04c95e5546b71bb86ee699a891c7d212b5 (patch) | |
tree | 08bd6a3a4294516dcfbd5b327fc50e65948fb22e /arch/arm/probes | |
parent | 00afe83098f59d3091a800d0db188ca495b2bc02 (diff) | |
download | linux-2e38eb04c95e5546b71bb86ee699a891c7d212b5.tar.xz |
kprobes: Do not increment probe miss count in the fault handler
Kprobes has a counter 'nmissed', that is used to count the number of
times a probe handler was not called. This generally happens when we hit
a kprobe while handling another kprobe.
However, if one of the probe handlers causes a fault, we are currently
incrementing 'nmissed'. The comment in fault handler indicates that this
can be used to account faults taken by the probe handlers. But, this has
never been the intention as is evident from the comment above 'nmissed'
in 'struct kprobe':
/*count the number of times this probe was temporarily disarmed */
unsigned long nmissed;
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Link: https://lkml.kernel.org/r/20210601120150.672652-1-naveen.n.rao@linux.vnet.ibm.com
Diffstat (limited to 'arch/arm/probes')
-rw-r--r-- | arch/arm/probes/kprobes/core.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/arch/arm/probes/kprobes/core.c b/arch/arm/probes/kprobes/core.c index 7b9b9a5a409b..27e0af78e88b 100644 --- a/arch/arm/probes/kprobes/core.c +++ b/arch/arm/probes/kprobes/core.c @@ -348,20 +348,6 @@ int __kprobes kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr) reset_current_kprobe(); } break; - - case KPROBE_HIT_ACTIVE: - case KPROBE_HIT_SSDONE: - /* - * We increment the nmissed count for accounting, - * we can also use npre/npostfault count for accounting - * these specific fault cases. - */ - kprobes_inc_nmissed_count(cur); - - break; - - default: - break; } return 0; |