Messages in this thread | | | Date | Mon, 25 Sep 2006 03:28:52 +0530 | From | Dipankar Sarma <> | Subject | Re: [-mm PATCH] RCU: debug sleep check |
| |
On Sun, Sep 24, 2006 at 02:44:40PM -0700, Andrew Morton wrote: > On Mon, 25 Sep 2006 03:05:08 +0530 > Dipankar Sarma <dipankar@in.ibm.com> wrote: > > > On Sun, Sep 24, 2006 at 11:56:46AM -0700, Andrew Morton wrote: > > > > > > Does this actually change anything? rcu_read_lock is preempt_disable(), and > > > might_sleep() already triggers if called inside preempt_disable(). > > > > It makes a difference if CONFIG_PREEMPT=n. AFAICS, preempt_disable() > > is a nop then and rcu needs its own check for sleeping while > > in read-side critical section. > > Right. I think enough people run with CONFIG_PREEMPT=y to make this > change rather unnecessary.
I would mostly agree except that for the rcupreempt (-rt) implementation we don't use preempt_disable/enable in rcu read-side critical section. So, I have to add a rcu_read_in_atomic() API anyway and there is no harm in adding the same for rcuclassic (current default) so that sleeping-while-rcu-atomic check happens irrespective of CONFIG_PREEMPT. It is included only if CONFIG_DEBUG_SPINLOCK_SLEEP=y.
> > And if there are developers out there who are testing their code without an > effective CONFIG_DEBUG_SPINLOCK_SLEEP, then *that* is what we need to fix, > no?
Yes. With this patch, I am relying on people to test their code with CONFIG_DEBUG_SPINLOCK_SLEEP so that we can catch bad rcu users.
Thanks Dipankar
- 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/
| |