From: Nicholas Miell <nmiell@comcast.net>
To: Davide Libenzi <davidel@xmailserver.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [patch 6/9] signalfd/timerfd v1 - timerfd core ...
Date: Sat, 10 Mar 2007 11:52:54 -0800 [thread overview]
Message-ID: <1173556374.2958.12.camel@entropy> (raw)
In-Reply-To: <Pine.LNX.4.64.0703092323370.28135@alien.or.mcafeemobile.com>
On Fri, 2007-03-09 at 23:36 -0800, Davide Libenzi wrote:
> On Fri, 9 Mar 2007, Nicholas Miell wrote:
>
> > On Fri, 2007-03-09 at 22:53 -0800, Davide Libenzi wrote:
> > > On Fri, 9 Mar 2007, Nicholas Miell wrote:
> > > >
> > > > So extend the existing POSIX timer API to deliver expiry events via a
> > > > fd.
> > >
> > > It'll be out of standard as timerfd is, w/out code savings. Look at the
> > > code and tell me what could be saved. Prolly the ten lines of the timer
> > > callback. Lines that you'll have to drop inside the current posix timer
> > > layer. Better leave standards alone, especially like in this case, when
> > > the savings are not there.
> > >
> >
> > OK, here's a more formal listing of my objections to the introduction of
> > timerfd in this form:
> >
> > A) It is a new general-purpose ABI intended for wide-scale usage, and
> > thus must be maintained forever.
>
> Yup
>
>
> > B) It is less functional than the existing ABIs -- modulo their
> > "delivery via signals only" limitation, which can be corrected (and has
> > been already in other operating systems).
>
> Less functional? Please, do tell me ...
>
Try reading the timer_create man page.
In short, you're limited to a single clock, so you can't set timers
based on wall-clock time (subject to NTP correction), monotomic time
(not subject to NTP, will not ever go backwards or skip ticks), the
high-res versions of the previous two clocks, per-thread or per-process
CPU usage time, or any other clocks that may get introduced in the
future.
In addition, you've introduced an entirely new incompatible API that
probably doesn't fit easily into existing software that already uses
POSIX timers.
>
> > C) Being an entirely new creation that completely ignores past work in
> > this area, it has no hope of ever getting into POSIX.
> >
> > which means
> >
> > D) At some point in time, Linux is going to get the POSIX version (in
> > whatever form it takes), making this new ABI useless dead weight (see
> > point A).
>
> Adding parameters/fields to a standard is going to create even more
> confusion than a new *single* function. And the code to cross-link the
> timerfd and the current posix timers is going to end up in being more
> complex than the current one.
>
Yes, but the standard explicitly allows you to do this. Furthermore, if
you work within the existing framework, you can lobby for the inclusion
of your API in the next version of POSIX.
Simplicity of the code is only a virtue if you don't have to do the
exact same thing again with a different interface later while keeping
the maintenance burden of the existing proprietary (and, thus,
unpopular) interface.
--
Nicholas Miell <nmiell@comcast.net>
next prev parent reply other threads:[~2007-03-10 19:52 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-09 23:41 [patch 6/9] signalfd/timerfd v1 - timerfd core Davide Libenzi
2007-03-10 6:33 ` Nicholas Miell
2007-03-10 6:38 ` Davide Libenzi
2007-03-10 6:43 ` Nicholas Miell
2007-03-10 6:53 ` Davide Libenzi
2007-03-10 7:09 ` Nicholas Miell
2007-03-10 7:36 ` Davide Libenzi
2007-03-10 19:52 ` Nicholas Miell [this message]
2007-03-10 20:41 ` Davide Libenzi
2007-03-10 21:01 ` Nicholas Miell
2007-03-10 21:44 ` Linus Torvalds
2007-03-10 21:56 ` Nicholas Miell
2007-03-10 22:42 ` Linus Torvalds
2007-03-11 0:25 ` Nicholas Miell
2007-03-11 0:35 ` Linus Torvalds
2007-03-11 1:49 ` Nicholas Miell
2007-03-11 1:57 ` Davide Libenzi
2007-03-11 2:09 ` Nicholas Miell
2007-03-11 5:31 ` Linus Torvalds
2007-03-11 6:18 ` Nicholas Miell
2007-03-11 16:29 ` Linus Torvalds
2007-03-11 3:42 ` Davide Libenzi
2007-03-11 5:35 ` Linus Torvalds
2007-03-11 5:44 ` Davide Libenzi
2007-03-10 22:30 ` Davide Libenzi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1173556374.2958.12.camel@entropy \
--to=nmiell@comcast.net \
--cc=akpm@linux-foundation.org \
--cc=davidel@xmailserver.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox