lkml.org 
[lkml]   [2011]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH RFC tip/core/rcu 28/28] rcu: Fix idle-task checks
On Thu, Nov 03, 2011 at 02:00:05PM -0700, Paul E. McKenney wrote:
> On Wed, Nov 02, 2011 at 09:55:09PM -0700, Josh Triplett wrote:
> > On Wed, Nov 02, 2011 at 01:30:49PM -0700, Paul E. McKenney wrote:
> > > From: Paul E. McKenney <paul.mckenney@linaro.org>
> > >
> > > RCU has traditionally relied on idle_cpu() to determine whether a given
> > > CPU is running in the context of an idle task, but recent changes have
> > > invalidated this approach. This commit therefore switches from idle_cpu
> > > to "current->pid != 0".
> >
> > Could you elaborate a bit on "recent changes"? It looks like you mean
> > commit 908a3283728d92df36e0c7cd63304fd35e93a8a9; if so, could you add
> > that reference to the commit message?
>
> Will do!
>
> > Also, the hard-coded use of "current->pid != 0" concerns me. Could this
> > use some existing function? Does idle_task() help? If no appropriate
> > predicate exists, perhaps it should. is_idle_task(current)?
>
> I could use idle_task(), but that does quite a bit more work.

Doesn't seem that high-overhead, but *shrug*.

> The hard-coded "current->pid != 0" is used in a number of other places
> in the kernel, so there is precedent.

Well, 2 is a number, yes:

arch/sparc/kernel/setup_32.c: if(current->pid != 0) {
kernel/events/core.c: if (!(event->attr.exclude_idle && current->pid == 0))

> Might be worth fixing globally
> as a separate fix, though.

Fair enough.

- Josh Triplett


\
 
 \ /
  Last update: 2011-11-04 00:09    [W:0.051 / U:6.232 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site