From: Laurent Vivier <Laurent.Vivier@bull.net>
To: Jakub Jelinek <jakub@redhat.com>
Cc: Suparna Bhattacharya <suparna@in.ibm.com>,
Ulrich Drepper <drepper@redhat.com>, Ingo Molnar <mingo@elte.hu>,
akpm@osdl.org, "linux-aio@kvack.org" <linux-aio@kvack.org>,
linux-kernel@vger.kernel.org
Subject: Re: Linux AIO status & todo
Date: Tue, 23 Aug 2005 15:13:43 +0200 [thread overview]
Message-ID: <1124802822.18662.60.camel@openx2.frec.bull.fr> (raw)
In-Reply-To: <20050823095609.GZ7403@devserv.devel.redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2564 bytes --]
Le mar 23/08/2005 à 11:56, Jakub Jelinek a écrit :
> On Tue, Aug 23, 2005 at 01:14:38PM +0530, Suparna Bhattacharya wrote:
>
> > 2. No support for propagating IO completion events to user space
> > threads using RT signals. User threads need to poll the completion
> > queue using io_getevents. POSIX specifies that when an AIO
> > request completes, a signal can be delivered to the application
> > to indicate the completion of the IO.
>
> POSIX AIO needs to handle SIGEV_NONE, SIGEV_SIGNAL and SIGEV_THREAD
> notification. Obviously kernel shouldn't create threads for SIGEV_THREAD
> itself, as kernel shouldn't hardcode all the implementation details how a
> thread can be created. But it would be good if AIO signalling e.g. handled
> both SIGEV_SIGNAL and SIGEV_SIGNAL | SIGEV_THREAD_ID, with the same usage as
> e.g. timer_* syscalls. If kernel makes sure SI_ASYNCIO si_code is set in
> the notification signal siginfos, glibc could even use just one helper
> thread for timer_*/[al]io_* and maybe in the future other SIGEV_THREAD notification.
>
See chapter "2.2. AIO completion event".
The libposix-aio written by Sébastien and I manages all these cases:
http://www.bullopensource.org/posix/
There is a patch allowing kernel to send signal to a given process on
aio event completion:
http://cvs.sourceforge.net/viewcvs.py/paiol/kernel-patches/2.6.12/aioevent.patch?rev=1.1.1.1&view=auto
With the help of an helper thread in the user space, the libposix-aio is
able to manage SIGEV_THREAD and create new thread by using user space
code (and thus implementation dependent calls):
http://cvs.sourceforge.net/viewcvs.py/paiol/libposix-aio/src/aio_read.c?view=markup
http://cvs.sourceforge.net/viewcvs.py/paiol/libposix-aio/src/aio_thread_create.c?view=markup
Sébastien wrote this part of libposix-aio (So I'm not an expert on this
part :-P ), but I think his helper thread is made like the glibc timer
helper thread is made. And thus, if we want to merge libposix-aio in
glibc, we should use existing mechanism, and it should be easy to put
POSIX AIO helper thread portions inside the timer helper thread.
But only the glibc maintainer can answer to this question:
should we mixe timer and AIO code ?
Laurent
--
------------------ Laurent Vivier -------------------
mailto:Laurent.Vivier@bull.net BULL/FREC:B1-226
phone: (+33) 476 29 7213 Bullcom: 229-7213
------------------[ DT/OSwR&D/AIX ]------------------
http://www.bullopensource.org/ext4
[-- Attachment #2: Ceci est une partie de message numériquement signée. --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2005-08-23 13:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-23 7:44 Suparna Bhattacharya
2005-08-23 9:56 ` Jakub Jelinek
2005-08-23 13:13 ` Laurent Vivier [this message]
2005-08-23 16:57 ` Benjamin LaHaise
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=1124802822.18662.60.camel@openx2.frec.bull.fr \
--to=laurent.vivier@bull.net \
--cc=akpm@osdl.org \
--cc=drepper@redhat.com \
--cc=jakub@redhat.com \
--cc=linux-aio@kvack.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=suparna@in.ibm.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
all inboxes | Powered by JetHome®