From: Nicholas Miell <nmiell@comcast.net>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Davide Libenzi <davidel@xmailserver.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [patch 6/9] signalfd/timerfd v1 - timerfd core ...
Date: Sat, 10 Mar 2007 17:49:19 -0800 [thread overview]
Message-ID: <1173577759.2958.124.camel@entropy> (raw)
In-Reply-To: <Pine.LNX.4.64.0703101630260.10330@woody.linux-foundation.org>
On Sat, 2007-03-10 at 16:35 -0800, Linus Torvalds wrote:
>
> On Sat, 10 Mar 2007, Nicholas Miell wrote:
> > >
> > > I'd actually much rather do POSIX timers the other way around: associate a
> > > generic notification mechanism with the file descriptor, and then
> > > implement posix_timer_create() on top of timerfd. Now THAT sounds like a
> > > clean unix-like interface ("everything is a file") and would imply that
> > > you'd be able to do the same kind of notification for any file descriptor,
> > > not just timers.
> > >
> >
> > But timers aren't files or even remotely file-like
>
> What do you think "a file" is?
>
> In UNIX, a file descriptor is pretty much anything. You could say that
> sockets aren't remotely file-like, and you'd be right. What's your point?
> If you can read on it, it's a file.
Ah, I see. You're just interested in fds as a generic handle concept,
and not a more Plan 9 type thing.
If that's the goal, somebody should start thinking about reducing the
contents of struct file to the bare minimum (i.e. not much more than a
file_operations pointer).
>
> And the real point of the whole signalfd() is that there really *are* a
> lot of UNIX interfaces that basically only work with file descriptors. Not
> just read, but select/poll/epoll.
It'd be useful if the polling interfaces could return small datums
beyond just the POLL* flags -- having to do a read on timerfd just to
get the overrun count has a lot of overhead for just an integer, and I
imagine other things would like to pass back stuff too.
> They currently have just one timeout, but the thing is, if UNIX had just
> had "timer file descriptors", they'd not need even that one. And even with
> the timeout, Davide's patch actually makes for a *better* timeout than the
> ones provided by select/poll/epoll, exactly because you can do things like
> repeating timers and absolute time etc.
>
> Much more naturally than the timer interface we currently have for those
> system calls.
>
You still want timeouts, creating/setting/destroying at timer just for
a single call to select/poll/epoll is probably too heavy weight.
timerfd() still leaves out the basic clock selection functionality
provided by both setitimer() and timer_create().
> The same goes for signals. The whole "pselect()" thing shows that signals
> really *should* have been file descriptors, and suddenly you don't need
> "pselect()" at all.
>
> So the "not remotely file-like" is not actually a real argument. One of
> the big *points* of UNIX was that it unified a lot under the general
> umbrella of a "file descriptor". Davide just unifies even more.
>
> Linus
--
Nicholas Miell <nmiell@comcast.net>
next prev parent reply other threads:[~2007-03-11 1:49 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
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 [this message]
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=1173577759.2958.124.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.