lkml.org 
[lkml]   [2014]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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


\
 
 \ /
  Last update: 2014-03-04 22:41    [W:0.086 / U:0.632 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site