9ec2690758
Peter is concerned about the extra scan of CLOCK_REALTIME_COS in the timer interrupt. Yes, I did not think about it, because the solution was so elegant. I didn't like the extra list in timerfd when it was proposed some time ago, but with a rcu based list the list walk it's less horrible than the original global lock, which was held over the list iteration. Requested-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Peter Zijlstra <peterz@infradead.org>
32 lines
906 B
C
32 lines
906 B
C
/*
|
|
* include/linux/timerfd.h
|
|
*
|
|
* Copyright (C) 2007 Davide Libenzi <davidel@xmailserver.org>
|
|
*
|
|
*/
|
|
|
|
#ifndef _LINUX_TIMERFD_H
|
|
#define _LINUX_TIMERFD_H
|
|
|
|
/* For O_CLOEXEC and O_NONBLOCK */
|
|
#include <linux/fcntl.h>
|
|
|
|
/*
|
|
* CAREFUL: Check include/asm-generic/fcntl.h when defining
|
|
* new flags, since they might collide with O_* ones. We want
|
|
* to re-use O_* flags that couldn't possibly have a meaning
|
|
* from eventfd, in order to leave a free define-space for
|
|
* shared O_* flags.
|
|
*/
|
|
#define TFD_TIMER_ABSTIME (1 << 0)
|
|
#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
|
|
#define TFD_CLOEXEC O_CLOEXEC
|
|
#define TFD_NONBLOCK O_NONBLOCK
|
|
|
|
#define TFD_SHARED_FCNTL_FLAGS (TFD_CLOEXEC | TFD_NONBLOCK)
|
|
/* Flags for timerfd_create. */
|
|
#define TFD_CREATE_FLAGS TFD_SHARED_FCNTL_FLAGS
|
|
/* Flags for timerfd_settime. */
|
|
#define TFD_SETTIME_FLAGS (TFD_TIMER_ABSTIME | TFD_TIMER_CANCEL_ON_SET)
|
|
|
|
#endif /* _LINUX_TIMERFD_H */
|