On Sat, Mar 26, 2011 at 08:25:29PM -0700, Paul E. McKenney wrote: > On Sun, Mar 27, 2011 at 03:30:34AM +0200, Sedat Dilek wrote: > > On Sun, Mar 27, 2011 at 1:09 AM, Paul E. McKenney > > <paulmck@xxxxxxxxxxxxxxxxxx> wrote: > > > On Sat, Mar 26, 2011 at 11:15:22PM +0100, Sedat Dilek wrote: [ . . . ] > > >> But then came RCU :-(. > > > > > > Well, if it turns out to be a problem in RCU I will certainly apologize. > > > > > > > No, that's not so dramatic. > > Dealing with this RCU issue has nice side-effects: I remembered (and > > finally did) to use a reduced kernel-config set. > > The base for it I created with 'make localmodconfig' and did some > > manual fine-tuning afterwards (throw out media, rc, dvd, unneeded FSs, > > etc.). > > Also, I can use fresh gcc-4.6 (4.6.0-1) from the official Debian repos. > > > > So, I started building with > > "revert-rcu-patches/0001-Revert-rcu-introduce-kfree_rcu.patch". > > I will let you know. > > And please also check for tasks consuming all available CPU. And I still cannot reproduce with the full RCU stack (but based off of 2.6.38 rather than -next). Nevertheless, if you would like to try a speculative patch, here you go. Thanx, Paul ------------------------------------------------------------------------ rcu: further lower priority in rcu_yield() Although rcu_yield() dropped from real-time to normal priority, there is always the possibility that the competing tasks have been niced. So nice to 19 in rcu_yield() to help ensure that other tasks have a better chance of running. Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> diff --git a/kernel/rcutree.c b/kernel/rcutree.c index 759f54b..5477764 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c @@ -1492,6 +1492,7 @@ static void rcu_yield(void (*f)(unsigned long), unsigned long arg) mod_timer(&yield_timer, jiffies + 2); sp.sched_priority = 0; sched_setscheduler_nocheck(current, SCHED_NORMAL, &sp); + set_user_nice(current, 19); schedule(); sp.sched_priority = RCU_KTHREAD_PRIO; sched_setscheduler_nocheck(current, SCHED_FIFO, &sp); -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html