forked from mirrors/linux
		
	 9ec2690758
			
		
	
	
		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 */
 |