From: Eric Dumazet <dada1@cosmosbay.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mark Lord <lkml@rtr.ca>, Ingo Molnar <mingo@elte.hu>,
Jeff Garzik <jeff@garzik.org>, Zach Brown <zach.brown@oracle.com>,
linux-kernel@vger.kernel.org,
Arjan van de Ven <arjan@infradead.org>,
Christoph Hellwig <hch@infradead.org>,
Andrew Morton <akpm@zip.com.au>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Ulrich Drepper <drepper@redhat.com>,
Evgeniy Polyakov <johnpol@2ka.mipt.ru>,
"David S. Miller" <davem@davemloft.net>,
Suparna Bhattacharya <suparna@in.ibm.com>,
Davide Libenzi <davidel@xmailserver.org>,
Jens Axboe <jens.axboe@oracle.com>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: Syslets, Threadlets, generic AIO support, v6
Date: Wed, 30 May 2007 22:46:51 +0200 [thread overview]
Message-ID: <465DE2BB.2060608@cosmosbay.com> (raw)
In-Reply-To: <alpine.LFD.0.98.0705301327090.26602@woody.linux-foundation.org>
Linus Torvalds a écrit :
>
> On Wed, 30 May 2007, Eric Dumazet wrote:
>> So yes, reimplement sendfile() should help to find last splice() bugs, and as
>> a bonus it could add non blocking disk io, (O_NONBLOCK on input file ->
>> socket)
>
> Well, to get those kinds of advantages, you'd have to use splice directly,
> since sendfile() hasn't supported nonblocking disk IO, and the interface
> doesn't really allow for it.
sendfile() interface doesnt allow it, but if you open("somediskfile", O_RDONLY
| O_NONBLOCK), then splice() based sendfile() can perform a non blocking disk
io, (while starting an io with readahead)
I actually use this trick myself :)
(splice(disk -> pipe, NONBLOCK), splice(pipe -> worker))
non blocking disk io, + zero copy :)
>
> In fact, since nonblocking accesses require also some *polling* method,
> and we don't have that for files, I suspect the best option for those
> things is to simply mix AIO and splice(). AIO tends to be the right thing
> for disk waits (read: short, often cached), and if we can improve AIO
> performance for the cached accesses (which is exactly what the threadlets
> should hopefully allow us to do), I would seriously suggest going that
> route.
>
> But the pure "use splice to _implement_ sendfile()" thing is worth doing
> for all the other reasons, even if nonblocking file access is not likely
> one of them.
>
> Linus
>
>
next prev parent reply other threads:[~2007-05-30 20:50 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-29 21:27 Syslets, Threadlets, generic AIO support, v6 Zach Brown
2007-05-29 21:49 ` Linus Torvalds
2007-05-29 22:49 ` Zach Brown
2007-05-29 22:16 ` Jeff Garzik
2007-05-29 23:09 ` Zach Brown
2007-05-29 23:20 ` Ulrich Drepper
2007-05-30 1:11 ` Dave Jones
2007-05-30 17:08 ` Zach Brown
2007-05-30 7:26 ` Ingo Molnar
2007-05-30 7:20 ` Ingo Molnar
2007-05-30 7:31 ` Ulrich Drepper
2007-05-30 8:42 ` Ingo Molnar
2007-05-30 8:51 ` Evgeniy Polyakov
2007-05-30 9:05 ` Ingo Molnar
2007-05-30 15:16 ` Linus Torvalds
2007-05-30 15:39 ` Ulrich Drepper
2007-05-30 19:40 ` Davide Libenzi
2007-05-30 19:55 ` Ulrich Drepper
2007-05-30 20:00 ` Linus Torvalds
2007-05-30 20:21 ` Davide Libenzi
2007-05-30 20:31 ` Eric Dumazet
2007-05-30 20:44 ` Linus Torvalds
2007-05-30 21:53 ` Eric Dumazet
2007-05-30 21:31 ` Davide Libenzi
2007-05-30 21:16 ` Ulrich Drepper
2007-05-30 21:27 ` Linus Torvalds
2007-05-30 21:47 ` Ulrich Drepper
2007-05-30 22:06 ` Davide Libenzi
2007-05-30 21:48 ` Davide Libenzi
2007-05-30 22:01 ` Linus Torvalds
2007-05-31 6:13 ` Ingo Molnar
2007-05-31 7:35 ` Eric Dumazet
2007-05-31 9:26 ` Ingo Molnar
2007-05-31 9:02 ` Ingo Molnar
2007-05-31 10:41 ` Eric Dumazet
2007-05-31 10:50 ` Ingo Molnar
2007-05-31 9:32 ` Ingo Molnar
2007-05-31 9:34 ` Jens Axboe
2007-05-30 22:09 ` Eric Dumazet
2007-05-30 21:51 ` David M. Lloyd
2007-05-30 22:24 ` William Lee Irwin III
2007-05-30 21:38 ` Jeremy Fitzhardinge
2007-05-30 21:39 ` Davide Libenzi
2007-05-30 21:36 ` Jeremy Fitzhardinge
2007-05-30 21:44 ` Linus Torvalds
2007-05-30 21:48 ` Linus Torvalds
2007-05-30 21:54 ` Jeremy Fitzhardinge
2007-05-30 22:27 ` Matt Mackall
2007-05-30 22:38 ` William Lee Irwin III
2007-05-30 8:32 ` Evgeniy Polyakov
2007-05-30 8:54 ` Ingo Molnar
2007-05-30 9:30 ` Evgeniy Polyakov
2007-05-30 9:28 ` Jeff Garzik
2007-05-30 13:02 ` Ingo Molnar
2007-05-30 13:20 ` Ingo Molnar
2007-05-30 15:31 ` Linus Torvalds
2007-05-30 16:09 ` Ingo Molnar
2007-05-30 17:57 ` Jens Axboe
2007-05-30 19:05 ` Mark Lord
2007-05-30 19:10 ` Jens Axboe
2007-05-30 19:15 ` Linus Torvalds
2007-05-30 19:32 ` Jens Axboe
2007-05-30 20:07 ` Eric Dumazet
2007-05-30 20:31 ` Linus Torvalds
2007-05-30 20:46 ` Eric Dumazet [this message]
2007-05-30 19:52 ` Davide Libenzi
2007-05-30 7:40 ` Jens Axboe
2007-05-30 16:55 ` Zach Brown
2007-05-30 17:33 ` Jens Axboe
-- strict thread matches above, loose matches on Subject: below --
2007-05-31 8:15 Albert Cahalan
2007-05-31 9:50 ` Ingo Molnar
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=465DE2BB.2060608@cosmosbay.com \
--to=dada1@cosmosbay.com \
--cc=akpm@zip.com.au \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arjan@infradead.org \
--cc=davem@davemloft.net \
--cc=davidel@xmailserver.org \
--cc=drepper@redhat.com \
--cc=hch@infradead.org \
--cc=jeff@garzik.org \
--cc=jens.axboe@oracle.com \
--cc=johnpol@2ka.mipt.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=lkml@rtr.ca \
--cc=mingo@elte.hu \
--cc=suparna@in.ibm.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=zach.brown@oracle.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 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.