[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110327050720.GA31424@linux.vnet.ibm.com>
Date: Sat, 26 Mar 2011 22:07:20 -0700
From: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
To: sedat.dilek@...il.com
Cc: Josh Triplett <josh@...htriplett.org>,
linux-next <linux-next@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Stephen Rothwell <sfr@...b.auug.org.au>,
Randy Dunlap <randy.dunlap@...cle.com>,
"Theodore Ts'o" <tytso@....edu>, Jens Axboe <axboe@...nel.dk>,
Tejun Heo <tj@...nel.org>, Al Viro <viro@...iv.linux.org.uk>,
Nick Piggin <npiggin@...nel.dk>
Subject: Re: linux-next: Tree for March 25 (Call trace:
RCU|workqueues|block|VFS|ext4 related?)
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@...ux.vnet.ibm.com> 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@...ux.vnet.ibm.com>
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-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists