Messages in this thread | | | Date | Tue, 4 Mar 2014 21:58:37 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [PATCH v4 5/6] timerfd: Add support for deferrable timers |
| |
On Tue, 25 Feb 2014, Andy Lutomirski wrote: > On 02/20/2014 08:23 AM, Alexey Perevalov wrote: > > From: Anton Vorontsov <anton@enomsg.org> > > > > This patch implements a userland-side API for generic deferrable timers, > > per linux/timer.h: > > > > * A deferrable timer will work normally when the system is busy, but > > * will not cause a CPU to come out of idle just to service it; instead, > > * the timer will be serviced when the CPU eventually wakes up with a > > * subsequent non-deferrable timer. > > > > These timers are crucial for power saving, i.e. periodic tasks that want > > to work in background when the system is under use, but don't want to > > cause wakeups themselves. > > Please don't. This API sucks for all kinds of reasons: > > - Why is it a new kind of clock?
We made it a flag already.
> - How deferrable is deferrable?
Deferrable is infinite.
> - It adds new core code, which serves no purpose (the problem is > already solved).
You wish and you're wrong.
- Make this work with the timer_list stuff for arbitrary clock ids. No way we go back to the mess of CLOCK_REALTIME which we had before hrtimers
- No way that we add a gazillion of extra code in timer related interfaces to distinguish between deferrable and non deferrable timers utilizing a different interface.
> On the other hand, if you added a fancier version of timerfd_settime > that could explicitly set the slack value (or, equivalently, the > earliest and latest allowable times), that could be quite useful. > > It's often bugged me that timer slack is per-process.
That's a totally different issue. There is a world aside of timerfd timers.
Thanks,
tglx
| |