All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scot McKinley <scot.mckinley@oracle.com>
To: John Myers <jgmyers@netscape.com>
Cc: Joel Becker <jlbec@evilplan.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	"linux-aio@kvack.org" <linux-aio@kvack.org>
Subject: Re: [PATCH 2.5.71-mm1] aio process hang on EINVAL
Date: Thu, 19 Jun 2003 15:42:56 -0700	[thread overview]
Message-ID: <3EF23C70.5010901@oracle.com> (raw)
In-Reply-To: 3EF22301.1000003@netscape.com


 > io_submit() is incapable of returning operation success notifications.

Exactly, that's why i proposed a new submission interface. ie, to
allow io_submit() to support the "always return async, even IF the
operation has ALREADY completed" paradigm, and another interface
to support the "return synchronous completions on submission"
paradigm.

 > "MAY" is far cry from "MUST".  I object strongly to requiring all
 > callers to io_submit() to be able to handle immediate completions.  In
 > my aio framework, the caller of io_submit() is not in a context where it
 > can invoke completion callbacks, since completion callbacks are not
 > required to be reentrant.

Fine (see interfaces defined above).

 > For the specific conditions under discussion, it was.  The conditions
 > were certainly extremely rare.

Yes, and we've moved past that, since there are other conditions which
are not as rare.

 > The traditional way of dealing with this is to first call the
 > synchronous nonblocking interface, retrying with the asynchronous
 > interface only when the nonblocking one indicates no progress.

Great...i am glad that we atleast agree that the interface is necessary,
tho maybe not on its makeup.

The issue i brought up (bcopy threshold), is not a non-blocking issue,
and the above is not the "traditional", nor the correct way of dealing w/
it. The app should NOT need to make multiple sys-calls to initiate
the io. By far the majority of the existly network aio api's simply
return an indication of the immediate/synchronous completion as a
return indication from a *single* submission routine. There is no
reason why we cannot, also.

Regards, -sm


  reply	other threads:[~2003-06-19 22:27 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-17  0:43 [PATCH 2.5.71-mm1] aio process hang on EINVAL Daniel McNeil
2003-06-17  1:33 ` John Myers
2003-06-17  3:24   ` Suparna Bhattacharya
2003-06-17 18:31     ` John Myers
2003-06-17 21:06     ` Daniel McNeil
2003-06-18  0:03       ` John Myers
2003-06-18  0:15         ` Joel Becker
2003-06-18  0:25           ` John Myers
2003-06-18  0:42             ` Joel Becker
2003-06-19  0:33               ` John Myers
2003-06-19  0:41                 ` Joel Becker
2003-06-19  0:58                   ` John Myers
2003-06-19  1:48                 ` Scot McKinley
2003-06-19 20:54                   ` John Myers
2003-06-19 22:42                     ` Scot McKinley [this message]
2003-06-18  5:11         ` Scot McKinley

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=3EF23C70.5010901@oracle.com \
    --to=scot.mckinley@oracle.com \
    --cc=jgmyers@netscape.com \
    --cc=jlbec@evilplan.org \
    --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.