Re: [PATCH tip/core/rcu 0/4] RCU debug-objects improvements

From: Paul E. McKenney
Date: Tue Apr 23 2013 - 22:49:04 EST


On Wed, Apr 24, 2013 at 03:45:20AM +0200, Sedat Dilek wrote:
> [ QUOTE ]
>
> Hello!
>
> RCU's current debug-objects fixups are complex and heavyweight, plus the
> fixups are not complete, because even with the fixups, RCU's callback
> lists can still be corrupted. This series reworks RCU's use of the
> debug-objects facility and the facility itself to allow improved handling
> of things like duplicate invocations of call_rcu(). This series includes:
>
> 1. Simplify RCU's debug-objects fixups.
>
> 2. Make debug_object_activate() return status.
>
> 3. Make __call_rcu() leak callbacks when debug_object_activate()
> notes suspicious activity. Leaking has its problems, but it
> is far better than silent corruption of RCU's data structures.
>
> 4. Add a new object_debug option to rcutorture to allow
> deterministic testing of #3 above.
>
> Thanx, Paul
>
>
> b/include/linux/debugobjects.h | 6 +-
> b/kernel/rcu.h | 10 ++--
> b/kernel/rcupdate.c | 100 -----------------------------------------
> b/kernel/rcutorture.c | 37 +++++++++++++++
> b/kernel/rcutree.c | 14 +++++
> b/lib/debugobjects.c | 20 +++++---
> 6 files changed, 74 insertions(+), 113 deletions(-)
>
> [ /QUOTE ]
>
> I applied your patchset against the "buggy" Linux-Next (next-20130423)
> with none of the ipc-sem-next patches (even w/o the suggested Linus
> patch) to see if I see more debug-outputs,
>
> I have attached my syslog while building my kernel.
> Please, have a look!

The warnings and the leaking of the offending callback are all present,
thank you for testing this!

> Thanks for the patches.
>
> Feel free to add to all of the 4 patches my Tested-by.

Will do!

Thanx, Paul

> - Sedat -
>
> [1] http://marc.info/?l=linux-kernel&m=136676361101735&w=2



--
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/