From: Christopher Smith <x@xman.org>
To: Dan Maas <dmaas@dcine.com>, linux-kernel@vger.kernel.org
Cc: cj@cjcj.com, bart@jukie.net
Subject: Re: Asynchronous IO
Date: Fri, 13 Apr 2001 19:00:20 -0700 [thread overview]
Message-ID: <37480000.987213620@hellman> (raw)
In-Reply-To: <009801c0c3f6$69d45c70$0701a8c0@morph>
--On Friday, April 13, 2001 04:45:07 -0400 Dan Maas <dmaas@dcine.com> wrote:
> IIRC the problem with implementing asynchronous *disk* I/O in Linux today
> is that the filesystem code assumes synchronous I/O operations that block
> the whole process/thread. So implementing "real" asynch I/O (without the
> overhead of creating a process context for each operation) would require
> re-writing the filesystems as non-blocking state machines. Last I heard
> this was a long-term goal, but nobody's done the work yet (aside from
> maybe the SGI folks with XFS?). Or maybe I don't know what I'm talking
> about...
If the FS supports generic read then this is not a problem. This is what
SGI's KAIO does as well as Bart's work.
> Bart, glad to hear you are working on an event interface, sounds cool! One
> feature that I really, really, *really* want to see implemented is the
> ability to block on a set of any "waitable kernel objects" with one
> syscall - not just file descriptors, but also SysV semaphores and message
> queues, UNIX signals and child proceses, file locks, pthreads condition
> variables, asynch disk I/O completions, etc. I am dying for a clean way to
> accomplish this that doesn't require more than one thread... (Win32 and
> FreeBSD kick our butts here with MsgWaitForMultipleObjects() and
> kevent()...) IMHO cleaning up this API deficiency is just as important as
> optimizing the extreme case of socket I/O with zillions of file
> descriptors...
Actually, sigwaitinfo() has zero problem waiting on muliple signals. If you
are using real-time signals each signal can pass a pointer to the relevant
object, so even if you're only blocking on a single signal you can receive
info about several objects.
<insert thread about how signals suck here>
--Chris
next prev parent reply other threads:[~2001-04-14 2:03 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-04-13 8:45 Asynchronous IO Dan Maas
2001-04-14 2:00 ` Christopher Smith [this message]
2001-04-19 18:19 ` Stephen C. Tweedie
-- strict thread matches above, loose matches on Subject: below --
2001-04-12 15:40 Asynchronous io CJ
2001-04-12 16:22 ` Bart Trojanowski
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=37480000.987213620@hellman \
--to=x@xman.org \
--cc=bart@jukie.net \
--cc=cj@cjcj.com \
--cc=dmaas@dcine.com \
--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.