• K
    wait: add wait_event_hrtimeout() · 774a08b3
    Kent Overstreet 提交于
    Analagous to wait_event_timeout() and friends, this adds
    wait_event_hrtimeout() and wait_event_interruptible_hrtimeout().
    
    Note that unlike the versions that use regular timers, these don't
    return the amount of time remaining when they return - instead, they
    return 0 or -ETIME if they timed out.  because I was uncomfortable with
    the semantics of doing it the other way (that I could get it right,
    anyways).
    
    If the timer expires, there's no real guarantee that expire_time -
    current_time would be <= 0 - due to timer slack certainly, and I'm not
    sure I want to know the implications of the different clock bases in
    hrtimers.
    
    If the timer does expire and the code calculates that the time remaining
    is nonnegative, that could be even worse if the calling code then reuses
    that timeout.  Probably safer to just return 0 then, but I could imagine
    weird bugs or at least unintended behaviour arising from that too.
    
    I came to the conclusion that if other users end up actually needing the
    amount of time remaining, the sanest thing to do would be to create a
    version that uses absolute timeouts instead of relative.
    
    [akpm@linux-foundation.org: fix description of `timeout' arg]
    Signed-off-by: NKent Overstreet <koverstreet@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Zach Brown <zab@redhat.com>
    Cc: Felipe Balbi <balbi@ti.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Mark Fasheh <mfasheh@suse.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Asai Thambi S P <asamymuthupa@micron.com>
    Cc: Selvan Mani <smani@micron.com>
    Cc: Sam Bradshaw <sbradshaw@micron.com>
    Cc: Jeff Moyer <jmoyer@redhat.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Benjamin LaHaise <bcrl@kvack.org>
    Reviewed-by: N"Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    774a08b3
wait.h 28.9 KB