lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110302224108.GA23194@linux.vnet.ibm.com>
Date:	Wed, 2 Mar 2011 14:41:08 -0800
From:	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
To:	Peter Zijlstra <peterz@...radead.org>
Cc:	Lai Jiangshan <laijs@...fujitsu.com>, linux-kernel@...r.kernel.org,
	mingo@...e.hu, dipankar@...ibm.com, akpm@...ux-foundation.org,
	mathieu.desnoyers@...ymtl.ca, josh@...htriplett.org,
	niv@...ibm.com, tglx@...utronix.de, rostedt@...dmis.org,
	Valdis.Kletnieks@...edu, dhowells@...hat.com,
	eric.dumazet@...il.com, darren@...art.com,
	"Paul E. McKenney" <paul.mckenney@...aro.org>
Subject: Re: [PATCH RFC tip/core/rcu 11/11] rcu: move TREE_RCU from softirq
 to kthread

On Tue, Mar 01, 2011 at 04:07:03PM -0800, Paul E. McKenney wrote:
> On Tue, Mar 01, 2011 at 03:38:11PM +0100, Peter Zijlstra wrote:
> > On Mon, 2011-02-28 at 16:13 -0800, Paul E. McKenney wrote:

[ . . . ]

> > wait_event() will only actually wait if the condition is false, in the
> > start-up case above it will find the condition true and fall right
> > through to do stuff.
> 
> So as long as it is OK to call sched_setscheduler_nocheck() before
> the kthread is first awakened, we should be OK.

So the softlockup code kills me when I do it this way.  Or can kill me.
>From what I can se the problem is that it might be the case that no one
needs a particular RCU kthread for some time.  In addition, if the kthread
has not yet done the wait_event(), wake_up() won't know to wake it up.
The flag gets set, and all zero of the tasks blocked on the event's
queue are awakened, but the not-yet-awakened task still sleeps because
it has not yet done the wait_event().

So I am falling back to waking each thread up just after creation so
that they can be safely parked regardless of who needs which kthread at
what time in the future.

On the other hand, making these changes and testing them helped me find
and fix a number of subtle and not-so-subtle bugs in the TREE_RCU priority
boosting code, so I most certainly cannot argue with the outcome!  ;-)

							Thanx, Paul
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ