Messages in this thread Patch in this message | | | Date | Thu, 17 Mar 2005 12:47:16 +0530 | From | Ananth N Mavinakayanahalli <> | Subject | Re: [PATCH] PPC64 Fix kprobes calling smp_processor_id when preemptible |
| |
On Mon, Mar 14, 2005 at 03:53:21PM +1100, Paul Mackerras wrote:
Hi Paul,
> When booting with kprobes and preemption both enabled and > CONFIG_DEBUG_PREEMPT=y, I get lots of warnings about smp_processor_id > being called in preemptible code, from kprobe_exceptions_notify. On > ppc64, interrupts and preemption are not disabled in the handlers for > most synchronous exceptions such as breakpoints and page faults > (interrupts are disabled in the very early exception entry code but > are reenabled before calling the C handler). > > This patch adds a preempt_disable/enable pair to > kprobe_exceptions_notify, and moves the preempt_disable() in > kprobe_handler() to be done only in the case where we are about to > single-step an instruction. This eliminates the bug warnings.
The patch is fine, but it seems to break jprobes - we have an unbalanced preempt_enable/disable path while handling jprobes. Patch below is against 2.6.11-mm4 and fixes the issue.
Thanks, Ananth
Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
diff -Naurp temp/linux-2.6.11/arch/ppc64/kernel/kprobes.c kprobes/linux-2.6.11/arch/ppc64/kernel/kprobes.c --- temp/linux-2.6.11/arch/ppc64/kernel/kprobes.c 2005-03-17 05:15:53.000000000 +0530 +++ kprobes/linux-2.6.11/arch/ppc64/kernel/kprobes.c 2005-03-17 19:46:21.000000000 +0530 @@ -262,7 +262,6 @@ int setjmp_pre_handler(struct kprobe *p, void jprobe_return(void) { - preempt_enable_no_resched(); asm volatile("trap" ::: "memory"); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |