LWN.net Logo

Re: [PATCH 4/5] select: make select() use schedule_hrtimeout()

From:  Linus Torvalds <torvalds-AT-linux-foundation.org>
To:  Arjan van de Ven <arjan-AT-infradead.org>
Subject:  Re: [PATCH 4/5] select: make select() use schedule_hrtimeout()
Date:  Fri, 29 Aug 2008 09:20:18 -0700 (PDT)
Message-ID:  <alpine.LFD.1.10.0808290915560.3300@nehalem.linux-foundation.org>
Cc:  linux-kernel-AT-vger.kernel.org, mingo-AT-elte.hu, tglx-AT-tglx.de
Archive-link:  Article, Thread



On Fri, 29 Aug 2008, Arjan van de Ven wrote:
> 
> now that we have schedule_hrtimeout(), make select() use it.
> But only for short delays; really long delays are assumed to not
> need the highres level of accuracy but rather want the regular
> timer behavior for now.

This is _really_ ugly.

Can't you just do this relaxation in "schedule_hrtimeout()" instead, and 
just document the fact that the "high resolution" of hrtimeout is relative 
to the length of the timeout.

It's not that select() doesn't care, it's that *NOBODY* cares. If somebody 
asks for a timeout of one second and 2 microseconds, the two microseconds 
simply don't matter. Ever. But if somebody asks for a timeout of 12 
microseconds, individual microseconds probably _do_ matter.

So if you want high-resolution select/poll, then get rid of the "use_hr" 
logic entirely, and just do it unconditionally. Then, relax the scheduler 
timeouts in the scheduler.

(But, that's probably _generally_ true. Even now, when people do 
"schedule_timeout()", there's a big difference between asking for two 
ticks and asking for two seconds. The latter should probably try to round 
to a nice timer tick basis for power reasons).

		Linus


(Log in to post comments)

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