Re: [RFC][PATCH] kprobes: Add separate preempt_disabling for kprobes

From: Masami Hiramatsu
Date: Fri Jul 01 2011 - 09:15:22 EST


(2011/07/01 21:19), Steven Rostedt wrote:
> On Fri, 2011-07-01 at 14:09 +0900, Masami Hiramatsu wrote:
>
>> BTW, on my tip tree, add_preempt_count (a.k.a. inc_preempt_count())
>> is marked as __kprobes, so it can not be probed. Is there any change?
>>
>
> That is when debug or preempt tracer is enabled. Otherwise it's
> hardcoded into whatever calls it:
>
> #if defined(CONFIG_DEBUG_PREEMPT) || defined(CONFIG_PREEMPT_TRACER)
> extern void add_preempt_count(int val);
> extern void sub_preempt_count(int val);
> #else
> # define add_preempt_count(val) do { preempt_count() += (val); } while (0)
> # define sub_preempt_count(val) do { preempt_count() -= (val); } while (0)
> #endif
>
>
> Anyway, it still doesn't help the place that reads preempt_count() and
> then later uses the result. I hit the crash in schedule_bug() where it
> increments preempt count, then reads it to see if it is only 1.

Ah, I see, that what I need...
I've made a fix patch for that, so could you test that?

Thank you,

--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@xxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/