Messages in this thread | | | Date | Tue, 6 Apr 2010 10:15:51 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [patch 1/5] Debugobjects transition check |
| |
On Wed, 31 Mar 2010, Mathieu Desnoyers wrote: > > > where "expect" is the expected state and "next" is the next state to move to if > > > the expected state is found. A warning is generated if the expected is not > > > found. > > > > Does it only warn or is there a callback to fixup things as well ? > > For the moment, it only warns. I have not seen the need for a fixup callback > yet. It might become useful at some point, but I prefer to proceed > incrementally. This kind of callback could become quite big too, because it > would have to deal with transitions "from each to each" states of the system, > with, in the worse case scenario, different fixups for each situation. > > Just for the specific case of "do RCU batch", when detecting that a non-queued > rcu head is there for execution, there are a few cases to consider: > > - List corruption > - Appears in two lists. > - Appears in the same list twice. > - Race (two threads reading the list at the same time). > - ... > > I am probably forgetting about others. So one way to fixup this would be not to > execute the callback, but even then, the lists might be corrupted. So it's not > at all clear to me if we can do much better than reporting the inconsistency > without increasing intrusiveness. But maybe I just need more imagination. ;)
Yes, that sounds tricky to implement and maybe not worth the effort. Can you resend the debugobjects patch with a full changelog please ?
Thanks,
tglx
| |