From: Jeremy Allison <jra@samba.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Daniel Ehrenberg <dehrenberg@google.com>,
Jens Axboe <axboe@kernel.dk>, Jeff Moyer <jmoyer@redhat.com>,
linux-kernel@vger.kernel.org, linux-aio@kvack.org
Subject: Re: Approaches to making io_submit not block
Date: Tue, 30 Aug 2011 16:03:42 -0700 [thread overview]
Message-ID: <20110830230342.GB16326@samba2> (raw)
In-Reply-To: <20110830155438.bc31ab99.akpm@linux-foundation.org>
On Tue, Aug 30, 2011 at 03:54:38PM -0700, Andrew Morton wrote:
>
> Also, glibc has userspace for POSIX AIO. A successful kernel-based
> implementation would result in glibc migrating away from its current
> implementation. So we should work with the glibc developers on ensuring
> that the migration can happen.
Unfortunately the glibc userspace POSIX AIO limits asynchronicity to
one outstanding request per file descriptor. From aio_misc.c in glibc:
if (runp != NULL
&& runp->aiocbp->aiocb.aio_fildes == aiocbp->aiocb.aio_fildes)
{
/* The current file descriptor is worked on. It makes no sense
to start another thread since this new thread would fight
with the running thread for the resources. But we also cannot
say that the thread processing this desriptor shall immediately
after finishing the current job process this request if there
are other threads in the running queue which have a higher
priority. */
/* Simply enqueue it after the running one according to the
priority. */
I have often wondered if this is actually the case ? I created
my own glibc with a patches AIO that removed this restriction
(thus had multiple outstanding threads on a single fd). In testing
I saw a dramatic increase in performance (2x speedup) but then
testing with use in actual code (Samba smbd) it made the client
throughput *worse*. I never got to the bottom of this and so
didn't submit my fixes to glibc.
Any ideas if this is still the case ? Or comments on why glibc
insists on only one outstanding request per fd ? Is this really
needed for kernel performance ?
Jeremy.
next prev parent reply other threads:[~2011-08-30 23:12 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-29 17:33 Approaches to making io_submit not block Daniel Ehrenberg
2011-08-30 5:32 ` Christoph Hellwig
2011-08-30 21:51 ` Daniel Ehrenberg
2011-08-31 5:26 ` Christoph Hellwig
2011-08-31 17:08 ` Andi Kleen
2011-08-31 21:00 ` Daniel Ehrenberg
2011-08-31 21:15 ` Andi Kleen
2011-09-01 4:18 ` Dave Chinner
2011-09-01 4:39 ` Andi Kleen
2011-09-01 6:54 ` Dave Chinner
2011-09-02 13:08 ` Ted Ts'o
2011-09-02 13:10 ` Christoph Hellwig
2011-09-01 3:39 ` Dave Chinner
2011-09-01 4:20 ` Christoph Hellwig
2011-08-30 7:02 ` Andi Kleen
[not found] ` <CAAK6Zt0Sh1GdEOb-tNf2FGXJs=e1Jbcqew13R_GdTqrv6vW97w@mail.gmail.com>
[not found] ` <x49k49uk2ox.fsf@segfault.boston.devel.redhat.com>
[not found] ` <4E5D5817.6040704@kernel.dk>
2011-08-30 22:19 ` Daniel Ehrenberg
2011-08-30 22:32 ` Jens Axboe
2011-08-30 22:41 ` Andrew Morton
2011-08-30 22:45 ` Daniel Ehrenberg
2011-08-30 22:54 ` Andrew Morton
2011-08-30 23:03 ` Jeremy Allison [this message]
2011-08-30 23:11 ` Andrew Morton
2011-08-31 11:04 ` Ulrich Drepper
2011-08-31 16:59 ` Jeremy Allison
2011-09-01 11:14 ` Ulrich Drepper
2011-09-01 15:58 ` Jeremy Allison
2011-09-01 16:04 ` Christoph Hellwig
2011-09-01 16:15 ` Jeremy Allison
2011-09-01 16:23 ` Christoph Hellwig
2011-09-01 16:31 ` Jeremy Allison
2011-09-01 16:34 ` Christoph Hellwig
2011-09-01 16:34 ` Jeremy Allison
2011-09-01 16:45 ` Christoph Hellwig
2011-09-01 16:57 ` Jeremy Allison
2011-08-31 5:34 ` Christoph Hellwig
2011-08-31 6:04 ` guy keren
2011-08-31 23:16 ` Daniel Ehrenberg
2011-08-31 23:48 ` guy keren
2011-08-31 23:59 ` Daniel Ehrenberg
2011-08-31 15:45 ` Gleb Natapov
2011-08-31 16:02 ` Avi Kivity
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=20110830230342.GB16326@samba2 \
--to=jra@samba.org \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=dehrenberg@google.com \
--cc=jmoyer@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox