linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Gardiner Myers <jgmyers@netscape.com>
To: Benjamin LaHaise <bcrl@redhat.com>
Cc: Davide Libenzi <davidel@xmailserver.org>,
	Dan Kegel <dank@kegel.com>, Shailabh Nagar <nagar@watson.ibm.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-aio <linux-aio@kvack.org>, Andrew Morton <akpm@digeo.com>,
	David Miller <davem@redhat.com>,
	Linus Torvalds <torvalds@transmeta.com>,
	Stephen Tweedie <sct@redhat.com>
Subject: Re: [PATCH] async poll for 2.5
Date: Tue, 15 Oct 2002 16:26:59 -0700	[thread overview]
Message-ID: <3DACA443.7030103@netscape.com> (raw)
In-Reply-To: 20021015184123.J16156@redhat.com

[-- Attachment #1: Type: text/plain, Size: 2285 bytes --]

Benjamin LaHaise wrote:

>I suppose one way of getting the async poll code up to snuff would be to 
>cache the poll registration in the file descriptor.  Alternatively, the 
>iocb could simply persist until it is cancelled or a refire is permitted 
>(so that the event queue does not get overrun).
>
First, can you confirm that your only problem with the async poll code 
is the fact that it doesn't amortize the registration/deregistration 
cost across multiple events?

I would say that the fact that the async poll code doesn't do this 
amortization is not sufficient reason to hold up the patch.  A 
non-amortizing async poll is sufficiently useful to warrant inclusion. 
 It is conceivable that some applications will not want to amortize some 
of their poll requests.  The non-amortizing interface can later be 
extended to an amortizing one by defining an "amortize me" bit to the 
events request mask.

I don't think caching the registration in the file descriptor is a good 
idea--there can be multiple registrations against a given fd.  The 
registration should be cached close to the iocb--either in the iocb or 
in some structure that directly references the iocb.

The model for multiple-events-per-iocb I was thinking of is as follows:

Add a concept of a "partial completion".  Unlike a normal completion, 
when a partial completion event fires the iocb is not freed.  Instead 
the iocb goes into a "fired" state.

When an iocb is in the fired state, it will not generate any more 
completion events until it is "rearmed" by user space.  The method by 
which user space rearms an iocb is to be determined.  Upon rearming, the 
iocb is once again able to generate either a partial or normal 
completion.  As with submission, rearming can generate this completion 
immediately if the situation warrants.

Canceling an iocb in the rearmed state is the same as canceling an iocb 
that has never generated a completion event.  Canceling an iocb in the 
fired state returns a normal completion through the cancellation 
interface and returns a distinct error code (not 0 or -EAGAIN) to inform 
the caller that there is an outstanding event to be synchronized with.

Attempting to rearm a canceled iocb returns an error, probably -EAGAIN 
to be consistent with cancellation.



[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/x-pkcs7-signature, Size: 3537 bytes --]

  reply	other threads:[~2002-10-15 23:21 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 [this message]
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
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: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-22 20:23                                                     ` async poll John Myers
2002-10-23 11:10                                                     ` Latest aio code (was Re: [PATCH] async poll for 2.5) Suparna Bhattacharya
2002-10-22 19:49                                             ` epoll " Davide Libenzi
2002-10-22 18:42                                     ` 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: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-23 21:13                                                 ` Charles 'Buck' Krasic
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=3DACA443.7030103@netscape.com \
    --to=jgmyers@netscape.com \
    --cc=akpm@digeo.com \
    --cc=bcrl@redhat.com \
    --cc=dank@kegel.com \
    --cc=davem@redhat.com \
    --cc=davidel@xmailserver.org \
    --cc=linux-aio@kvack.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nagar@watson.ibm.com \
    --cc=sct@redhat.com \
    --cc=torvalds@transmeta.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;
as well as URLs for NNTP newsgroup(s).