Re: [PATCH v4 5/6] timerfd: Add support for deferrable timers

From: Thomas Gleixner
Date: Tue Mar 04 2014 - 15:58:40 EST


On Tue, 25 Feb 2014, Andy Lutomirski wrote:
> On 02/20/2014 08:23 AM, Alexey Perevalov wrote:
> > From: Anton Vorontsov <anton@xxxxxxxxxx>
> >
> > 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/