[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BANLkTimapK+1vDwB-Akw0eVimM4gHBdqaw@mail.gmail.com>
Date: Wed, 1 Jun 2011 02:52:59 +0900
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: paulmck@...ux.vnet.ibm.com
Cc: Ingo Molnar <mingo@...e.hu>, linux-kernel@...r.kernel.org,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Thomas Gleixner <tglx@...utronix.de>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [GIT PULL] RCU fix
On Wed, Jun 1, 2011 at 2:44 AM, Paul E. McKenney
<paulmck@...ux.vnet.ibm.com> wrote:
>
> The reason for the switch is to allow threads blocked in TREE_PREEMPT_RCU
> and TINY_PREEMPT_RCU RCU read-side critical sections to have their
> priority boosted in order to avoid OOM. People have made these OOMs
> happen, so this is not longer just a theoretical concern.
Quite frankly, that doesn't make much sense.
First off, the default for priority boosting is off (and you cannot
even select it unless you have RT_MUTEX and PREEMPT_RCU), so why the
heck do we still use the threads even when we don't support the
boosting at all?
Secondly, if a process is in danger of exhausting the RCU resources,
and it is preemptable, why doesn't the rcu_read_unlock() logic just
try to force a reschedule and thus an rcu idle period? Using processes
and process priorities for this seems to be just stupid.
I dunno. After RCU_TINY showed how fragile it was to use kernel
threads for this, and after this subtle issue just re-inforced that
conclusion, I just cannot begin to believe that using a thread was the
right thing to do. It just seems stupid.
Linus
--
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