Messages in this thread | | | Date | Sat, 16 May 2009 00:36:15 -0700 | Subject | [RFC] mod_timer() helper functions? | From | Chris Peterson <> |
| |
Reviewing the kernel's nearly one-thousand calls to mod_timer(), there are three basic patterns:
* multi-second timeouts * millisecond timeouts * +1 jiffie ASAP events
Few mod_timer() calls actually use the function's 'expires' deadline time without manually calculating 'jiffies + delay'. The following helper functions could provide a simpler, more descriptive interface than the low-level mod_timer() function. Also, when scheduling longer timers, these helper functions could use round_jiffies() to (secretly) batch timers on whole seconds to reduce power usage.
Any suggestions? Is there enough value to warrant adding helper function like these as an alternative to mod_timer()?
chris
--- static inline int mod_timer_seconds(struct timer_list *timer, time_t seconds) { return mod_timer(timer, round_jiffies(jiffies + seconds * HZ)); }
static inline int mod_timer_msecs(struct timer_list *timer, unsigned int msecs) { /* TODO? Round jiffies if within some epsilon of a whole second? */ return mod_timer(timer, jiffies + msecs_to_jiffies(msecs)); }
static inline int mod_timer_yield(struct timer_list *timer) { /* After these messages, we'll be right back. */ return mod_timer(timer, jiffies + 1); }
| |