All of lore.kernel.org
 help / color / mirror / Atom feed
From: Erich Nahum <nahum@watson.ibm.com>
To: Davide Libenzi <davidel@xmailserver.org>
Cc: John Gardiner Myers <jgmyers@netscape.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-aio <linux-aio@kvack.org>
Subject: Re: epoll (was Re: [PATCH] async poll for 2.5)
Date: Tue, 22 Oct 2002 17:54:00 -0400 (EDT)	[thread overview]
Message-ID: <200210222154.RAA29096@orinoco.watson.ibm.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0210221258070.1563-100000@blue1.dev.mcafeelabs.com> from Davide Libenzi at "Oct 22, 2002 01:06:36 pm"

Davide Libenzi writes:
> On Tue, 22 Oct 2002, John Gardiner Myers wrote:
> 
> > > 1. re-arming the one-shot notification when the user gets EAGAIN
> > > 2. re-arming the one-shot notification when the user reads all the data
> > >    that was waiting (such that the very next read would return EGAIN).
> > >
> > > #1 is what Davide wants; I think John and Mark are arguing for #2.
> >
> > No, this is not what I'm arguing.  Once an event arrives for a fd, my
> > proposed semantics are no different than Mr. Libenzi's.  The only
> > difference is what happens upon registration of interest for a fd.  With
> > my semantics, the kernel guarantees that if the fd is ready then at
> > least one event has been generated.  With Mr Libenzi's semantics, there
> > is no such guarantee and the application is required to behave as if an
> > event had been generated upon registration.
> 
> There're a couple of reason's why the drop of the initial event is a waste
> of time :
> 
> 1) The I/O write space is completely available at fd creation
> 2) For sockets it's very likely that the first packet brought something
> 	more than the SYN == The I/O read space might have something for you
> 
> I strongly believe that the concept "use the fd until EAGAIN" should be
> applied even at creation time, w/out making exceptions to what is the
> API's rule to follow.

There is a third way, described in the original Banga/Mogul/Druschel
paper, available via Dan Kegel's web site: extend the accept() call to 
return whether an event has already happened on that FD.  That way you 
can service a ready FD without reading /dev/epoll or calling
sigtimedwait, and you don't have to waste a read() call on the socket
only to find out you got EAGAIN.

Of course, this changes the accept API, which is another matter.  But
if we're talking a new API then there's no problem.

-Erich


  reply	other threads:[~2002-10-22 21:49 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-14 22:36 [PATCH] async poll for 2.5 Shailabh Nagar
2002-10-14 22:54 ` John Myers
2002-10-15 15:05 ` Benjamin LaHaise
2002-10-15 17:06   ` Dan Kegel
2002-10-15 17:03     ` Benjamin LaHaise
2002-10-15 17:18       ` Dan Kegel
2002-10-16  2:11         ` Lincoln Dale
2002-10-15 18:09     ` Shailabh Nagar
2002-10-15 18:53       ` Dan Kegel
2002-10-15 18:57         ` Benjamin LaHaise
2002-10-15 20:25           ` John Gardiner Myers
2002-10-15 21:09             ` Dan Kegel
2002-10-15 21:50               ` John Myers
2002-10-15 22:33                 ` Davide Libenzi
2002-10-15 22:56                   ` John Gardiner Myers
2002-10-15 23:23                     ` Davide Libenzi
2002-10-16 19:16                       ` John Myers
2002-10-15 21:11             ` Davide Libenzi
2002-10-15 22:01               ` John Gardiner Myers
2002-10-15 22:27                 ` Davide Libenzi
2002-10-15 22:36                   ` John Gardiner Myers
2002-10-15 22:41                     ` Benjamin LaHaise
2002-10-15 23:26                       ` John Gardiner Myers
2002-10-15 23:05                     ` Davide Libenzi
2002-10-15 23:33                       ` John Gardiner Myers
2002-10-16  0:05                         ` Davide Libenzi
2002-10-16  0:15                           ` John Myers
2002-10-16 14:25                             ` Davide Libenzi
2002-10-16 18:15                               ` John Gardiner Myers
2002-10-16 19:20                                 ` Davide Libenzi
2002-10-16 23:31                                   ` epoll (was Re: [PATCH] async poll for 2.5) John Gardiner Myers
2002-10-16 23:51                                     ` Davide Libenzi
2002-10-17 18:06                                       ` John Gardiner Myers
2002-10-17 18:33                                         ` Davide Libenzi
2002-10-18 19:02                                           ` John Gardiner Myers
2002-10-18 19:52                                             ` Davide Libenzi
2002-10-19  0:55                                               ` John Myers
2002-10-19  5:40                                                 ` Davide Libenzi
2002-10-19  6:59                                                 ` Mark Mielke
2002-10-19 17:26                                                   ` Davide Libenzi
2002-10-19 17:48                                                   ` Dan Kegel
2002-10-19 18:52                                                     ` Charles 'Buck' Krasic
2002-10-19 20:18                                                       ` Charles 'Buck' Krasic
2002-10-19 21:08                                                         ` Dan Kegel
2002-10-22 19:35                                               ` John Gardiner Myers
2002-10-22 20:06                                                 ` Davide Libenzi
2002-10-22 21:54                                                   ` Erich Nahum [this message]
2002-10-22 22:17                                                     ` Dan Kegel
2002-10-22 22:25                                                     ` Davide Libenzi
2002-10-18 21:01                                             ` Charles 'Buck' Krasic
2002-10-18 21:33                                               ` Davide Libenzi
2002-10-19  1:05                                           ` John Myers
2002-10-19  1:27                                             ` Tervel Atanassov
2002-10-19 18:52                                               ` John G. Myers
2002-10-19  4:07                                             ` Charles 'Buck' Krasic
2002-10-16 20:06                                 ` [PATCH] async poll for 2.5 Mark Mielke
2002-10-16 23:48                                   ` epoll (was Re: [PATCH] async poll for 2.5) John Gardiner Myers
2002-10-17  0:23                                     ` Davide Libenzi
2002-10-17 17:45                                       ` John Myers
2002-10-16  2:45                         ` [PATCH] async poll for 2.5 Charles 'Buck' Krasic
2002-10-16 14:28                           ` Davide Libenzi
2002-10-17 18:47                             ` Charles 'Buck' Krasic
2002-10-17 19:20                               ` Davide Libenzi
2002-10-18  3:30                               ` Dan Kegel
2002-10-16 18:29                           ` John Gardiner Myers
2002-10-16 20:39                             ` Charles 'Buck' Krasic
2002-10-17 17:59                               ` epoll (was Re: [PATCH] async poll for 2.5) John Gardiner Myers
2002-10-21 16:58                             ` [PATCH] async poll for 2.5 Alan Cox
2002-10-21 16:50                               ` Benjamin LaHaise
2002-10-16 19:59                     ` Dan Kegel
2002-10-16 20:03                 ` Dan Kegel
2002-10-17 17:43                   ` epoll (was Re: [PATCH] async poll for 2.5) John Myers
2002-10-18 17:00                     ` Mark Mielke
2002-10-18 17:28                       ` Dan Kegel
2002-10-18 17:41                         ` Davide Libenzi
2002-10-18 18:55                           ` Mark Mielke
2002-10-18 19:16                             ` Davide Libenzi
2002-10-19  6:56                               ` Mark Mielke
2002-10-19 16:10                                 ` Charles 'Buck' Krasic
2002-10-22 17:22                                   ` Mark Mielke
2002-10-22 17:46                                     ` Dan Kegel
2002-10-22 17:47                                     ` Davide Libenzi
2002-10-22 18:13                                       ` Alan Cox
2002-10-22 18:18                                         ` Davide Libenzi
2002-10-22 18:37                                           ` Benjamin LaHaise
2002-10-22 19:49                                             ` Davide Libenzi
2002-10-22 19:22                                         ` John Gardiner Myers
2002-10-22 19:28                                           ` Benjamin LaHaise
2002-10-22 19:50                                         ` John Gardiner Myers
2002-10-22 20:00                                           ` Benjamin LaHaise
2002-10-23 11:10                                             ` Latest aio code " Suparna Bhattacharya
2002-10-22 20:23                                         ` async poll John Myers
2002-10-22 18:42                                     ` epoll (was Re: [PATCH] async poll for 2.5) Charles 'Buck' Krasic
2002-10-22 19:35                                       ` Davide Libenzi
2002-10-23 16:49                                         ` Dan Kegel
2002-10-23 17:39                                           ` Benjamin LaHaise
2002-10-23 18:47                                             ` Davide Libenzi
2002-10-23 21:18                                               ` Benjamin LaHaise
2002-10-23 21:35                                                 ` Davide Libenzi
2002-10-23 21:39                                                   ` John Gardiner Myers
2002-10-23 21:54                                                     ` Davide Libenzi
2002-10-23 17:49                                           ` Charles 'Buck' Krasic
2002-10-23 18:14                                             ` Davide Libenzi
2002-10-23 18:32                                               ` Charles 'Buck' Krasic
2002-10-23 20:36                                               ` async poll John Myers
2002-10-23 20:57                                                 ` Dan Kegel
2002-10-23 21:13                                                 ` Charles 'Buck' Krasic
2002-10-23 21:23                                               ` John Gardiner Myers
2002-10-23 21:51                                                 ` Davide Libenzi
2002-10-23 21:51                                                   ` bert hubert
2002-10-23 22:10                                                     ` Davide Libenzi
2002-10-23 21:54                                                   ` John Gardiner Myers
2002-10-23 22:22                                                     ` Davide Libenzi
2002-10-23 22:29                                                       ` John Gardiner Myers
2002-10-23 22:50                                                         ` Davide Libenzi
2002-10-24  7:32                                                           ` Eduardo Pérez
2002-10-24 15:05                                                             ` Charles 'Buck' Krasic
2002-10-23 22:24                                                 ` Dan Kegel
2002-10-23 22:30                                                   ` Davide Libenzi
2002-10-23 22:53                                                     ` Davide Libenzi
2002-10-19 17:19                                 ` epoll (was Re: [PATCH] async poll for 2.5) Davide Libenzi
2002-10-18 18:55                       ` Chris Friesen
2002-10-18 19:00                         ` Mark Mielke
2002-10-15 17:38   ` [PATCH] async poll for 2.5 Shailabh Nagar
2002-10-15 17:50     ` Benjamin LaHaise
2002-10-15 18:16       ` Davide Libenzi
2002-10-15 18:18         ` Shailabh Nagar
2002-10-15 19:00           ` Davide Libenzi
2002-10-15 19:02             ` Benjamin LaHaise
2002-10-15 18:59               ` Shailabh Nagar
2002-10-15 19:16               ` Davide Libenzi
2002-10-15 19:12                 ` Benjamin LaHaise
2002-10-15 19:31                   ` Davide Libenzi
2002-10-15 19:38                     ` Dan Kegel
2002-10-15 19:55                       ` Davide Libenzi
2002-10-15 20:36                   ` John Gardiner Myers
2002-10-15 20:39                     ` Benjamin LaHaise
2002-10-15 19:02           ` 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=200210222154.RAA29096@orinoco.watson.ibm.com \
    --to=nahum@watson.ibm.com \
    --cc=davidel@xmailserver.org \
    --cc=jgmyers@netscape.com \
    --cc=linux-aio@kvack.org \
    --cc=linux-kernel@vger.kernel.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.