public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Nicholas Miell <nmiell@comcast.net>
To: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Cc: lkml <linux-kernel@vger.kernel.org>,
	David Miller <davem@davemloft.net>,
	Ulrich Drepper <drepper@redhat.com>,
	Andrew Morton <akpm@osdl.org>, netdev <netdev@vger.kernel.org>,
	Zach Brown <zach.brown@oracle.com>,
	Christoph Hellwig <hch@infradead.org>
Subject: Re: [take12 0/3] kevent: Generic event handling mechanism.
Date: Tue, 22 Aug 2006 00:00:51 -0700	[thread overview]
Message-ID: <1156230051.8055.27.camel@entropy> (raw)
In-Reply-To: <11561555871530@2ka.mipt.ru>

On Mon, 2006-08-21 at 14:19 +0400, Evgeniy Polyakov wrote:
> Generic event handling mechanism.

Since this is the sixth[1] event notification system that's getting
added to the kernel, could somebody please convince me that the
userspace API is right this time? (Evidently, the others weren't and are
now just backward compatibility bloat.)

Just looking at the proposed kevent API, it appears that the timer event
queuing mechanism can't be used for the queuing of POSIX.1b interval
timer events (i.e. via a SIGEV_KEVENT notification value in a struct
sigevent) because (being a very thin veneer over the internal kernel
timer system) you can't specify a clockid, the time value doesn't have
the flexibility of a struct itimerspec (no re-arm timeout or absolute
times), and there's no way to alter, disable or query a pending timer or
query a timer overrun count.

Overall, kevent timers appear to be inconvenient to use and limited
compared to POSIX interval timers (excepting the fact you can read their
expiray events out of a queue, of course).



[1] Previously: select, poll, AIO, epoll, and inotify. Did I miss any?

-- 
Nicholas Miell <nmiell@comcast.net>


  parent reply	other threads:[~2006-08-22  7:01 UTC|newest]

Thread overview: 144+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <12345678912345.GA1898@2ka.mipt.ru>
2006-08-17  7:43 ` [take11 0/3] kevent: Generic event handling mechanism Evgeniy Polyakov
2006-08-17  7:43   ` [take11 1/3] kevent: Core files Evgeniy Polyakov
2006-08-17  7:43     ` [take11 2/3] kevent: poll/select() notifications Evgeniy Polyakov
2006-08-17  7:43       ` [take11 3/3] kevent: Timer notifications Evgeniy Polyakov
2006-08-21 10:19 ` [take12 0/3] kevent: Generic event handling mechanism Evgeniy Polyakov
2006-08-21 10:19   ` [take12 1/3] kevent: Core files Evgeniy Polyakov
2006-08-21 10:19     ` [take12 2/3] kevent: poll/select() notifications Evgeniy Polyakov
2006-08-21 10:19       ` [take12 3/3] kevent: Timer notifications Evgeniy Polyakov
2006-08-21 11:12         ` Christoph Hellwig
2006-08-21 11:18           ` Evgeniy Polyakov
2006-08-21 11:27             ` Arjan van de Ven
2006-08-21 11:59               ` Evgeniy Polyakov
2006-08-21 12:13                 ` Arjan van de Ven
2006-08-21 12:25                   ` Evgeniy Polyakov
2006-08-21 14:25             ` Thomas Gleixner
2006-08-22 18:25               ` Evgeniy Polyakov
2006-08-21 12:09           ` Evgeniy Polyakov
2006-08-22  4:36             ` Andrew Morton
2006-08-22  5:48               ` Evgeniy Polyakov
2006-08-21 12:37         ` [take12 4/3] kevent: Comment cleanup Evgeniy Polyakov
2006-08-23  8:51     ` [take12 1/3] kevent: Core files Eric Dumazet
2006-08-23  9:18       ` Evgeniy Polyakov
2006-08-23  9:23         ` Eric Dumazet
2006-08-23  9:29           ` Evgeniy Polyakov
2006-08-22  7:00   ` Nicholas Miell [this message]
2006-08-22  7:24     ` [take12 0/3] kevent: Generic event handling mechanism Evgeniy Polyakov
2006-08-22  8:17       ` Nicholas Miell
2006-08-22  8:23         ` David Miller
2006-08-22  8:59           ` Nicholas Miell
2006-08-22 14:59             ` James Morris
2006-08-22 20:00               ` Nicholas Miell
2006-08-22 20:36                 ` David Miller
2006-08-22 21:13                   ` Nicholas Miell
2006-08-22 21:25                     ` David Miller
2006-08-22 22:58                       ` Nicholas Miell
2006-08-22 23:46                         ` Ulrich Drepper
2006-08-23  1:51                           ` Nicholas Miell
2006-08-23  6:54                           ` Evgeniy Polyakov
2006-08-22  8:37         ` Evgeniy Polyakov
2006-08-22  9:29           ` Nicholas Miell
2006-08-22 10:03             ` Evgeniy Polyakov
2006-08-22 19:57               ` Nicholas Miell
2006-08-22 20:16                 ` Evgeniy Polyakov
2006-08-22 21:13                   ` Nicholas Miell
2006-08-22 21:37                     ` Randy.Dunlap
2006-08-22 22:01                       ` Andrew Morton
2006-08-22 22:17                         ` David Miller
2006-08-22 23:35                           ` Andrew Morton
2006-08-22 22:58                       ` Nicholas Miell
2006-08-22 23:06                         ` David Miller
2006-08-23  1:36                           ` The Proposed Linux kevent API (was: Re: [take12 0/3] kevent: Generic event handling mechanism.) Nicholas Miell
2006-08-23  2:01                             ` The Proposed Linux kevent API Howard Chu
2006-08-23  3:31                             ` David Miller
2006-08-23  3:47                               ` Nicholas Miell
2006-08-23  4:23                                 ` Nicholas Miell
2006-08-23  6:22                             ` The Proposed Linux kevent API (was: Re: [take12 0/3] kevent: Generic event handling mechanism.) Evgeniy Polyakov
2006-08-23  8:01                               ` Nicholas Miell
2006-08-23 18:24                             ` The Proposed Linux kevent API Stephen Hemminger
2006-08-22 23:22                         ` [take12 0/3] kevent: Generic event handling mechanism Randy.Dunlap
     [not found]         ` <b3f268590608220957g43a16d6bmde8a542f8ad8710b@mail.gmail.com>
2006-08-22 17:09           ` Jari Sundell
2006-08-22 18:01           ` Evgeniy Polyakov
2006-08-22 19:14             ` Jari Sundell
2006-08-22 19:47               ` Evgeniy Polyakov
2006-08-22 22:51                 ` Jari Sundell
2006-08-22 23:11                   ` Alexey Kuznetsov
2006-08-23  0:28                     ` Jari Sundell
2006-08-23  0:32                       ` David Miller
2006-08-23  0:43                         ` Jari Sundell
2006-08-23  6:56                           ` Evgeniy Polyakov
2006-08-23  7:07                             ` Andrew Morton
2006-08-23  7:10                               ` Evgeniy Polyakov
2006-08-23  9:58                                 ` Andi Kleen
2006-08-23 10:03                                   ` Evgeniy Polyakov
2006-08-23  7:35                               ` David Miller
2006-08-23  8:18                                 ` Nicholas Miell
2006-08-23  7:43                               ` Ian McDonald
2006-08-23  7:50                               ` Evgeniy Polyakov
2006-08-23 16:09                                 ` Andrew Morton
2006-08-23 16:22                                   ` Evgeniy Polyakov
2006-08-23  8:22                             ` Jari Sundell
2006-08-23  8:39                               ` Evgeniy Polyakov
2006-08-23  9:49                                 ` Jari Sundell
2006-08-23 10:20                                   ` Evgeniy Polyakov
2006-08-23 10:34                                     ` Jari Sundell
2006-08-23 10:51                                       ` Evgeniy Polyakov
2006-08-23 12:55                                         ` Jari Sundell
2006-08-23 13:11                                           ` Evgeniy Polyakov
2006-08-22 11:54   ` [PATCH] kevent_user: remove non-chardev interface Christoph Hellwig
2006-08-22 12:17     ` Evgeniy Polyakov
2006-08-22 12:27       ` Christoph Hellwig
2006-08-22 12:39         ` Evgeniy Polyakov
2006-08-22 11:55   ` [PATCH] kevent_user: use struct kevent_mring for the page ring Christoph Hellwig
2006-08-22 12:20     ` Evgeniy Polyakov
2006-08-23 11:24 ` [take13 0/3] kevent: Generic event handling mechanism Evgeniy Polyakov
2006-08-23 11:24   ` [take13 1/3] kevent: Core files Evgeniy Polyakov
2006-08-23 11:24     ` [take13 2/3] kevent: poll/select() notifications Evgeniy Polyakov
2006-08-23 11:24       ` [take13 3/3] kevent: Timer notifications Evgeniy Polyakov
2006-08-23 12:51     ` [take13 1/3] kevent: Core files Eric Dumazet
     [not found]       ` <20060823132753.GB29056@2ka.mipt.ru>
2006-08-23 13:44         ` Evgeniy Polyakov
2006-08-24 20:03     ` Christoph Hellwig
2006-08-25  5:48       ` Evgeniy Polyakov
2006-08-25  6:20         ` Andrew Morton
2006-08-25  6:32           ` Evgeniy Polyakov
2006-08-25  6:58             ` Andrew Morton
2006-08-25  7:20               ` Evgeniy Polyakov
2006-08-25  7:01           ` David Miller
2006-08-25  7:13             ` Andrew Morton
     [not found]   ` <Pine.LNX.4.63.0608231313370.8007@alpha.polcom.net>
     [not found]     ` <20060823122509.GA5744@2ka.mipt.ru>
     [not found]       ` <Pine.LNX.4.63.0608231437170.8007@alpha.polcom.net>
     [not found]         ` <20060823134227.GC29056@2ka.mipt.ru>
2006-08-23 18:56           ` [take13 0/3] kevent: Generic event handling mechanism Evgeniy Polyakov
2006-08-23 19:42             ` Evgeniy Polyakov
2006-08-25  9:54 ` [take14 " Evgeniy Polyakov
2006-08-25  9:54   ` [take14 1/3] kevent: Core files Evgeniy Polyakov
2006-08-25  9:54     ` [take14 2/3] kevent: poll/select() notifications Evgeniy Polyakov
2006-08-25  9:54       ` [take14 3/3] kevent: Timer notifications Evgeniy Polyakov
2006-08-27 21:03   ` [take14 0/3] kevent: Generic event handling mechanism Ulrich Drepper
2006-08-28  1:57     ` David Miller
2006-08-28  2:11       ` Ulrich Drepper
2006-08-28  2:40       ` Nicholas Miell
2006-08-28  2:59     ` Nicholas Miell
2006-08-28 11:47       ` Jari Sundell
2006-08-31  7:58     ` Evgeniy Polyakov
2006-09-09 16:10       ` Ulrich Drepper
2006-09-11  5:42         ` Evgeniy Polyakov
2006-09-04 10:14 ` [take15 0/4] " Evgeniy Polyakov
2006-09-04  9:58   ` Evgeniy Polyakov
2006-09-04 10:14   ` [take15 1/4] kevent: Core files Evgeniy Polyakov
2006-09-04 10:14     ` [take15 2/4] kevent: poll/select() notifications Evgeniy Polyakov
2006-09-04 10:14       ` [take15 3/4] kevent: Socket notifications Evgeniy Polyakov
2006-09-04 10:14         ` [take15 4/4] kevent: Timer notifications Evgeniy Polyakov
2006-09-05 13:39           ` Arnd Bergmann
2006-09-06  6:42             ` Evgeniy Polyakov
2006-09-05 13:28     ` [take15 1/4] kevent: Core files Arnd Bergmann
2006-09-06  6:51       ` Evgeniy Polyakov
2006-09-04 10:24   ` [take15 0/4] kevent: Generic event handling mechanism Evgeniy Polyakov
2006-09-06 11:55 ` [take16 " Evgeniy Polyakov
2006-09-06 11:55   ` [take16 1/4] kevent: Core files Evgeniy Polyakov
2006-09-06 11:55     ` [take16 2/4] kevent: poll/select() notifications Evgeniy Polyakov
2006-09-06 11:55       ` [take16 3/4] kevent: Socket notifications Evgeniy Polyakov
2006-09-06 11:55         ` [take16 4/4] kevent: Timer notifications Evgeniy Polyakov
2006-09-06 13:40     ` [take16 1/4] kevent: Core files Chase Venters
2006-09-06 13:54       ` Chase Venters
2006-09-06 14:03       ` Evgeniy Polyakov
2006-09-06 14:23         ` Chase Venters
2006-09-07  7:10           ` Evgeniy Polyakov
2006-08-23  4:35 [take12 0/3] kevent: Generic event handling mechanism Albert Cahalan

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=1156230051.8055.27.camel@entropy \
    --to=nmiell@comcast.net \
    --cc=akpm@osdl.org \
    --cc=davem@davemloft.net \
    --cc=drepper@redhat.com \
    --cc=hch@infradead.org \
    --cc=johnpol@2ka.mipt.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=zach.brown@oracle.com \
    /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