Messages in this thread | | | Date | Wed, 15 Feb 2012 21:46:27 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [PATCH] hrtimers: Special-case zero length sleeps |
| |
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
| |