Re: [PATCH] powerpc/xmon: Fix data-breakpoint
Hi Michael, Can you please pull this patch. Thanks, Ravi On Tuesday 22 November 2016 02:55 PM, Ravi Bangoria wrote: > Xmon data-breakpoint feature is broken. > > Whenever there is a watchpoint match occurs, hw_breakpoint_handler will > be called by do_break via notifier chains mechanism. If watchpoint is > registered by xmon, hw_breakpoint_handler won't find any associated > perf_event and returns immediately with NOTIFY_STOP. Similarly, do_break > also returns without notifying to xmon. > > Solve this by returning NOTIFY_DONE when hw_breakpoint_handler does not > find any perf_event associated with matched watchpoint. > > Signed-off-by: Ravi Bangoria > --- > arch/powerpc/kernel/hw_breakpoint.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/kernel/hw_breakpoint.c > b/arch/powerpc/kernel/hw_breakpoint.c > index 03d089b..469d86d 100644 > --- a/arch/powerpc/kernel/hw_breakpoint.c > +++ b/arch/powerpc/kernel/hw_breakpoint.c > @@ -228,8 +228,10 @@ int hw_breakpoint_handler(struct die_args *args) > rcu_read_lock(); > > bp = __this_cpu_read(bp_per_reg); > - if (!bp) > + if (!bp) { > + rc = NOTIFY_DONE; > goto out; > + } > info = counter_arch_bp(bp); > > /*
Re: [PATCH] powerpc/xmon: Fix data-breakpoint
Thanks Michael, On Tuesday 22 November 2016 05:03 PM, Michael Ellerman wrote: > Ravi Bangoria writes: > >> Xmon data-breakpoint feature is broken. >> >> Whenever there is a watchpoint match occurs, hw_breakpoint_handler will >> be called by do_break via notifier chains mechanism. If watchpoint is >> registered by xmon, hw_breakpoint_handler won't find any associated >> perf_event and returns immediately with NOTIFY_STOP. Similarly, do_break >> also returns without notifying to xmon. >> >> Solve this by returning NOTIFY_DONE when hw_breakpoint_handler does not >> find any perf_event associated with matched watchpoint. > .. rather than NOTIFY_STOP, which tells the core code to continue > calling the other breakpoint handlers including the xmon one. > > Right? Yes. > Also any idea when we broke this? Hmm, not sure exactly. The code is same since it was merged in 2010 when support for hw_breakpoint was added for server processor. -Ravi > cheers >
Re: [PATCH] powerpc/xmon: Fix data-breakpoint
Ravi Bangoria writes: > Xmon data-breakpoint feature is broken. > > Whenever there is a watchpoint match occurs, hw_breakpoint_handler will > be called by do_break via notifier chains mechanism. If watchpoint is > registered by xmon, hw_breakpoint_handler won't find any associated > perf_event and returns immediately with NOTIFY_STOP. Similarly, do_break > also returns without notifying to xmon. > > Solve this by returning NOTIFY_DONE when hw_breakpoint_handler does not > find any perf_event associated with matched watchpoint. .. rather than NOTIFY_STOP, which tells the core code to continue calling the other breakpoint handlers including the xmon one. Right? Also any idea when we broke this? cheers
[PATCH] powerpc/xmon: Fix data-breakpoint
Xmon data-breakpoint feature is broken. Whenever there is a watchpoint match occurs, hw_breakpoint_handler will be called by do_break via notifier chains mechanism. If watchpoint is registered by xmon, hw_breakpoint_handler won't find any associated perf_event and returns immediately with NOTIFY_STOP. Similarly, do_break also returns without notifying to xmon. Solve this by returning NOTIFY_DONE when hw_breakpoint_handler does not find any perf_event associated with matched watchpoint. Signed-off-by: Ravi Bangoria --- arch/powerpc/kernel/hw_breakpoint.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kernel/hw_breakpoint.c b/arch/powerpc/kernel/hw_breakpoint.c index 03d089b..469d86d 100644 --- a/arch/powerpc/kernel/hw_breakpoint.c +++ b/arch/powerpc/kernel/hw_breakpoint.c @@ -228,8 +228,10 @@ int hw_breakpoint_handler(struct die_args *args) rcu_read_lock(); bp = __this_cpu_read(bp_per_reg); - if (!bp) + if (!bp) { + rc = NOTIFY_DONE; goto out; + } info = counter_arch_bp(bp); /* -- 1.8.3.1