LWN.net Logo

Re: [PATCH] hrtimers: Special-case zero length sleeps

From:  Thomas Gleixner <tglx-AT-linutronix.de>
To:  Matthew Garrett <mjg59-AT-srcf.ucam.org>
Subject:  Re: [PATCH] hrtimers: Special-case zero length sleeps
Date:  Wed, 15 Feb 2012 21:46:27 +0100 (CET)
Message-ID:  <alpine.LFD.2.02.1202152140110.2794@ionos>
Cc:  LKML <linux-kernel-AT-vger.kernel.org>, Arjan van de Ven <arjan-AT-infradead.org>, Peter Zijlstra <peterz-AT-infradead.org>
Archive-link:  Article, Thread

On Wed, 15 Feb 2012, Matthew Garrett wrote:

> On Wed, Feb 15, 2012 at 09:30:20PM +0100, Thomas Gleixner wrote:
> > On Wed, 15 Feb 2012, Matthew Garrett wrote:
> > > Excellent. So the real question is what /should/ sleep(0) do - nothing, 
> > > schedule or sleep for an arbitrary period of time that could be years?
> > 
> > Well, I don't expect slack to be set to years and I really don't want
> > to special case sleep(0), because then we might end up discussing
> > special casing usleep(1) or nanosleep(1ns) as well.
> 
> Increasing slack to the seconds range has measureable power management 
> benefits, but there's some code that ends up broken as a result even 
> when they're nominally event driven. I've no problem with us just 
> declaring that code as broken, but it would be less effort to special 
> case it. Application authors do seem to have ended up under the belief 
> that sleep(0) is a meaningful thing to do, and the internet seems to be 
> full of suggestions to use it rather than sched_yield().

The internet is full of crappy suggestions written by absolutely
clueless and advisory resistant morons.

Dammit, we cannot come up with a reasonable definition for special
casing that stuff simply because you cannot draw a clear boundary what
to special case and what not. And there is no sensible definition for
what to do - return right away or go through schedule() or what ever.

sleep(0) is as pointless as sched_yield() and it's about time that we
stop to create a fucking mess in the kernel just because user space
programmers refuse to understand how an operating system works and how
proper programming should be done.

Thanks,

	tglx


(Log in to post comments)

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds