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

Matthew Garrett
2012-02-15T20:38:21Z

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().

--
Matthew Garrett | mjg59@srcf.ucam.org