From: "Stephen C. Tweedie" <sct@redhat.com>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: "Stephen C. Tweedie" <sct@redhat.com>,
Christoph Hellwig <hch@caldera.de>, Steve Lord <lord@sgi.com>,
linux-kernel@vger.kernel.org,
kiobuf-io-devel@lists.sourceforge.net,
Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait /notify + callback chains
Date: Mon, 5 Feb 2001 11:03:36 +0000 [thread overview]
Message-ID: <20010205110336.A1167@redhat.com> (raw)
In-Reply-To: <20010201220744.K11607@redhat.com> <Pine.LNX.4.10.10102031224210.8867-100000@penguin.transmeta.com>
In-Reply-To: <Pine.LNX.4.10.10102031224210.8867-100000@penguin.transmeta.com>; from torvalds@transmeta.com on Sat, Feb 03, 2001 at 12:28:47PM -0800
Hi,
On Sat, Feb 03, 2001 at 12:28:47PM -0800, Linus Torvalds wrote:
>
> On Thu, 1 Feb 2001, Stephen C. Tweedie wrote:
> >
> Neither the read nor the write are page-aligned. I don't know where you
> got that idea. It's obviously not true even in the common case: it depends
> _entirely_ on what the file offsets are, and expecting the offset to be
> zero is just being stupid. It's often _not_ zero. With networking it is in
> fact seldom zero, because the network packets are seldom aligned either in
> size or in location.
The underlying buffer is. The VFS (and the current kiobuf code) is
already happy about IO happening at odd offsets within a page.
However, the more general case --- doing zero-copy IO on arbitrary
unaligned buffers --- simply won't work if you expect to be able to
push those buffers to disk without a copy.
The splice case you talked about is fine because it's doing the normal
prepare/commit logic where the underlying buffer is page aligned, even
if the splice IO is not to a page aligned location. That's _exactly_
what kiobufs were intended to support. The prepare_read/prepare_write/
pull/push cycle lets the caller tell the pull() function where to
store its data, becausse there are alignment constraints which just
can't be ignored: you simply cannot do physical disk IO on
non-sector-aligned memory or in chunks which aren't a multiple of
sector size. (The buffer address alignment can sometimes be relaxed
--- obviously if you're doing PIO then it doesn't matter --- but the
length granularity is rigidly enforced.)
Cheers,
Stephen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2001-02-05 11:07 UTC|newest]
Thread overview: 201+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-02-01 14:44 [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait /notify + callback chains bsuparna
2001-02-01 15:09 ` Christoph Hellwig
2001-02-01 16:08 ` Steve Lord
2001-02-01 16:49 ` Stephen C. Tweedie
2001-02-01 17:02 ` Christoph Hellwig
2001-02-01 17:34 ` Alan Cox
2001-02-01 17:49 ` Stephen C. Tweedie
2001-02-01 17:09 ` Chaitanya Tumuluri
2001-02-01 20:33 ` Christoph Hellwig
2001-02-01 20:56 ` Steve Lord
2001-02-01 20:59 ` Christoph Hellwig
2001-02-01 21:17 ` Steve Lord
2001-02-01 21:44 ` Stephen C. Tweedie
2001-02-01 22:07 ` Stephen C. Tweedie
2001-02-02 12:02 ` Christoph Hellwig
2001-02-05 12:19 ` Stephen C. Tweedie
2001-02-05 21:28 ` Ingo Molnar
2001-02-05 22:58 ` Stephen C. Tweedie
2001-02-05 23:06 ` Alan Cox
2001-02-05 23:16 ` Stephen C. Tweedie
2001-02-06 0:19 ` Manfred Spraul
2001-02-03 20:28 ` Linus Torvalds
2001-02-05 11:03 ` Stephen C. Tweedie [this message]
2001-02-05 12:00 ` Manfred Spraul
2001-02-05 15:03 ` Stephen C. Tweedie
2001-02-05 15:19 ` Alan Cox
2001-02-05 17:20 ` Stephen C. Tweedie
2001-02-05 17:29 ` Alan Cox
2001-02-05 18:49 ` Stephen C. Tweedie
2001-02-05 19:04 ` Alan Cox
2001-02-05 19:09 ` Linus Torvalds
2001-02-05 19:16 ` [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait Alan Cox
2001-02-05 19:28 ` Linus Torvalds
2001-02-05 20:54 ` Stephen C. Tweedie
2001-02-05 21:08 ` David Lang
2001-02-05 21:51 ` Alan Cox
2001-02-06 0:07 ` Stephen C. Tweedie
2001-02-06 17:00 ` Christoph Hellwig
2001-02-06 17:05 ` Stephen C. Tweedie
2001-02-06 17:14 ` Jens Axboe
2001-02-06 17:22 ` Christoph Hellwig
2001-02-06 18:26 ` Stephen C. Tweedie
2001-02-06 17:37 ` Ben LaHaise
2001-02-06 18:00 ` Jens Axboe
2001-02-06 18:09 ` Ben LaHaise
2001-02-06 19:35 ` Jens Axboe
2001-02-06 18:14 ` Linus Torvalds
2001-02-08 11:21 ` Andi Kleen
2001-02-08 14:11 ` Martin Dalecki
2001-02-08 17:59 ` Linus Torvalds
2001-02-06 18:18 ` Ingo Molnar
2001-02-06 18:25 ` Ben LaHaise
2001-02-06 18:35 ` Ingo Molnar
2001-02-06 18:54 ` Ben LaHaise
2001-02-06 18:58 ` Ingo Molnar
2001-02-06 19:11 ` Ben LaHaise
2001-02-06 19:32 ` Jens Axboe
2001-02-06 19:32 ` Ingo Molnar
2001-02-06 19:32 ` Linus Torvalds
2001-02-06 19:44 ` Ingo Molnar
2001-02-06 19:49 ` Ben LaHaise
2001-02-06 19:57 ` Ingo Molnar
2001-02-06 20:07 ` Jens Axboe
2001-02-06 20:25 ` Ben LaHaise
2001-02-06 20:41 ` Manfred Spraul
2001-02-06 20:50 ` Jens Axboe
2001-02-06 21:26 ` Manfred Spraul
2001-02-06 21:42 ` Linus Torvalds
2001-02-06 20:16 ` Marcelo Tosatti
2001-02-06 22:09 ` Jens Axboe
2001-02-06 22:26 ` Linus Torvalds
2001-02-06 21:13 ` Marcelo Tosatti
2001-02-06 23:26 ` Linus Torvalds
2001-02-07 23:17 ` select() returning busy for regular files [was Re: [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait] Pavel Machek
2001-02-08 13:57 ` Ben LaHaise
2001-02-08 17:52 ` Linus Torvalds
2001-02-08 15:06 ` [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait Ben LaHaise
2001-02-08 13:44 ` Marcelo Tosatti
2001-02-08 13:45 ` Marcelo Tosatti
2001-02-07 23:15 ` Pavel Machek
2001-02-08 13:22 ` Stephen C. Tweedie
2001-02-08 12:03 ` Marcelo Tosatti
2001-02-08 15:46 ` Mikulas Patocka
2001-02-08 14:05 ` Marcelo Tosatti
2001-02-08 16:11 ` Mikulas Patocka
2001-02-08 14:44 ` Marcelo Tosatti
2001-02-08 16:57 ` Rik van Riel
2001-02-08 17:13 ` James Sutherland
2001-02-08 18:38 ` Linus Torvalds
2001-02-09 12:17 ` Martin Dalecki
2001-02-08 15:55 ` Jens Axboe
2001-02-08 18:09 ` Linus Torvalds
2001-02-08 14:52 ` Mikulas Patocka
2001-02-08 19:50 ` Stephen C. Tweedie
2001-02-11 21:30 ` Pavel Machek
2001-02-06 21:57 ` Manfred Spraul
2001-02-06 22:13 ` Linus Torvalds
2001-02-06 22:26 ` Andre Hedrick
2001-02-06 20:49 ` Jens Axboe
2001-02-07 0:21 ` Stephen C. Tweedie
2001-02-07 0:25 ` Ingo Molnar
2001-02-07 0:36 ` Stephen C. Tweedie
2001-02-07 0:50 ` Linus Torvalds
2001-02-07 1:49 ` Stephen C. Tweedie
2001-02-07 2:37 ` Linus Torvalds
2001-02-07 14:52 ` Stephen C. Tweedie
2001-02-07 19:12 ` Richard Gooch
2001-02-07 20:03 ` Stephen C. Tweedie
2001-02-07 1:51 ` Jeff V. Merkey
2001-02-07 1:01 ` Ingo Molnar
2001-02-07 1:59 ` Jeff V. Merkey
2001-02-07 1:02 ` Jens Axboe
2001-02-07 1:19 ` Linus Torvalds
2001-02-07 1:39 ` Jens Axboe
2001-02-07 1:45 ` Linus Torvalds
2001-02-07 1:55 ` Jens Axboe
2001-02-07 9:10 ` David Howells
2001-02-07 12:16 ` Stephen C. Tweedie
2001-02-07 2:00 ` Jeff V. Merkey
2001-02-07 1:06 ` Ingo Molnar
2001-02-07 1:09 ` Jens Axboe
2001-02-07 1:11 ` Ingo Molnar
2001-02-07 1:26 ` Linus Torvalds
2001-02-07 2:07 ` Jeff V. Merkey
2001-02-07 1:08 ` Jens Axboe
2001-02-07 2:08 ` Jeff V. Merkey
2001-02-07 1:42 ` Jeff V. Merkey
2001-02-07 0:42 ` Linus Torvalds
2001-02-07 0:35 ` Jens Axboe
2001-02-07 0:41 ` Linus Torvalds
2001-02-07 1:27 ` Stephen C. Tweedie
2001-02-07 1:40 ` Linus Torvalds
2001-02-12 10:07 ` Jamie Lokier
2001-02-06 20:26 ` Linus Torvalds
2001-02-06 20:25 ` Christoph Hellwig
2001-02-06 20:35 ` Ingo Molnar
2001-02-06 19:05 ` Marcelo Tosatti
2001-02-06 20:59 ` Ingo Molnar
2001-02-06 21:20 ` Steve Lord
2001-02-07 18:27 ` Christoph Hellwig
2001-02-06 20:59 ` Linus Torvalds
2001-02-07 18:26 ` Christoph Hellwig
2001-02-07 18:36 ` Linus Torvalds
2001-02-07 18:44 ` Christoph Hellwig
2001-02-08 0:34 ` Neil Brown
2001-02-06 19:46 ` Ingo Molnar
2001-02-06 20:16 ` Ben LaHaise
2001-02-06 20:22 ` Ingo Molnar
2001-02-06 19:20 ` Linus Torvalds
2001-02-06 0:31 ` Roman Zippel
2001-02-06 1:01 ` Linus Torvalds
2001-02-06 1:08 ` David S. Miller
2001-02-06 9:22 ` Roman Zippel
2001-02-06 9:30 ` Ingo Molnar
2001-02-05 22:09 ` [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait /notify + callback chains Ingo Molnar
2001-02-05 16:56 ` Linus Torvalds
2001-02-05 17:27 ` [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait Alan Cox
2001-02-05 16:36 ` [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait /notify + callback chains Linus Torvalds
2001-02-05 19:08 ` Stephen C. Tweedie
2001-02-01 17:49 ` Christoph Hellwig
2001-02-01 17:58 ` Alan Cox
2001-02-01 18:32 ` Rik van Riel
2001-02-01 18:59 ` yodaiken
2001-02-01 19:33 ` Stephen C. Tweedie
2001-02-01 18:51 ` bcrl
2001-02-01 16:16 ` Stephen C. Tweedie
2001-02-01 17:05 ` Christoph Hellwig
2001-02-01 17:09 ` Christoph Hellwig
2001-02-01 17:41 ` Stephen C. Tweedie
2001-02-01 18:14 ` Christoph Hellwig
2001-02-01 18:25 ` Alan Cox
2001-02-01 18:39 ` Rik van Riel
2001-02-01 18:46 ` [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait Alan Cox
2001-02-01 18:48 ` [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait /notify + callback chains Christoph Hellwig
2001-02-01 18:57 ` Alan Cox
2001-02-01 19:00 ` Christoph Hellwig
2001-02-01 19:32 ` Stephen C. Tweedie
2001-02-01 20:46 ` Christoph Hellwig
2001-02-01 21:25 ` Stephen C. Tweedie
2001-02-02 11:51 ` Christoph Hellwig
2001-02-02 14:04 ` Stephen C. Tweedie
2001-02-02 4:18 ` bcrl
2001-02-02 12:12 ` Christoph Hellwig
2001-02-01 20:04 ` Chaitanya Tumuluri
-- strict thread matches above, loose matches on Subject: below --
2001-02-06 13:50 bsuparna
2001-02-06 14:07 ` Jens Axboe
[not found] <CA2569EA.00506BBC.00@d73mta05.au.ibm.com>
2001-02-05 15:01 ` Stephen C. Tweedie
2001-02-05 14:31 bsuparna
[not found] <CA2569E9.004A4E23.00@d73mta05.au.ibm.com>
2001-02-05 12:09 ` Stephen C. Tweedie
2001-02-04 13:24 bsuparna
2001-02-02 15:31 bsuparna
2001-02-01 13:20 bsuparna
2001-02-01 7:58 bsuparna
2001-02-01 12:39 ` Stephen C. Tweedie
2001-02-01 4:55 bsuparna
2001-02-01 12:19 ` Stephen C. Tweedie
2001-02-01 16:30 ` Chaitanya Tumuluri
2001-02-01 3:59 bsuparna
[not found] <CA2569E5.004D51A7.00@d73mta05.au.ibm.com>
2001-01-31 23:32 ` Stephen C. Tweedie
2001-01-31 13:58 bsuparna
2001-01-30 14:09 bsuparna
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=20010205110336.A1167@redhat.com \
--to=sct@redhat.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=hch@caldera.de \
--cc=kiobuf-io-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=lord@sgi.com \
--cc=torvalds@transmeta.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.