From: Christoph Hellwig <hch@caldera.de>
To: sct@redhat.com ("Stephen C. Tweedie")
Cc: bsuparna@in.ibm.com, linux-kernel@vger.kernel.org,
kiobuf-io-devel@lists.sourceforge.net
Subject: Re: [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait /notify + callback chains
Date: Thu, 1 Feb 2001 21:46:27 +0100 [thread overview]
Message-ID: <200102012046.VAA16746@ns.caldera.de> (raw)
In-Reply-To: <20010201193221.D11607@redhat.com>
In article <20010201193221.D11607@redhat.com> you wrote:
> Buffer_heads are _sometimes_ used for caching data.
Actually they are mostly used, but that should have any value for the
discussion...
> That's one of the
> big problems with them, they are too overloaded, being both IO
> descriptors _and_ cache descriptors.
Agreed.
> If you've got 128k of data to
> write out from user space, do you want to set up one kiobuf or 256
> buffer_heads? Buffer_heads become really very heavy indeed once you
> start doing non-trivial IO.
Sure - I was never arguing in favor of buffer_head's ...
>> > What is so heavyweight in the current kiobuf (other than the embedded
>> > vector, which I've already noted I'm willing to cut)?
>>
>> array_len
> kiobufs can be reused after IO. You can depopulate a kiobuf,
> repopulate it with new pages and submit new IO without having to
> deallocate the kiobuf. You can't do this without knowing how big the
> data vector is. Removing that functionality will prevent reuse,
> making them _more_ heavyweight.
>> io_count,
> Right now we can take a kiobuf and turn it into a bunch of
> buffer_heads for IO. The io_count lets us track all of those sub-IOs
> so that we know when all submitted IO has completed, so that we can
> pass the completion callback back up the chain without having to
> allocate yet more descriptor structs for the IO.
> Again, remove this and the IO becomes more heavyweight because we need
> to create a separate struct for the info.
No. Just allow passing the multiple of the devices blocksize over
ll_rw_block. XFS is doing that and it just needs an audit of the lesser
used block drivers.
>> and the lack of
>> scatter gather in one kiobuf struct (you always need an array)
> Again, _all_ data being sent down through the block device layer is
> either in buffer heads or is page aligned.
That's the point. You are always talking about the block-layer only.
And I think it should be generic instead.
Looks like that is the major point.
> You want us to triple the
> size of the "heavyweight" kiobuf's data vector for what gain, exactly?
double.
> Obviously, extra code will be needed to scan kiobufs if we do that,
> and unless we have both per-page _and_ per-kiobuf start/offset pairs
> (adding even further to the complexity), those scatter-gather lists
> would prevent us from carving up a kiobuf into smaller sub-ios without
> copying the whole (expanded) vector.
No. I think I explained that in my last mail.
> That's a _lot_ of extra complexity in the disk IO layers.
> Possibly, but I remain to be convinced, because you may end up with a
> mechanism which is generic but is not well-tuned for any specific
> case, so everything goes slower.
As kiobufs are widely used for real IO, just as containers, this is
better then nothing.
And IMHO a nice generic concepts that lets different subsystems work
toegther is a _lot_ better then a bunch of over-optimized, rather isolated
subsytems. The IO-Lite people have done a nice research of the effect of
an unified IO-Caching system vs. the typical isolated systems.
Christoph
--
Of course it doesn't work. We've performed a software upgrade.
-
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-01 20:47 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
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 [this message]
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=200102012046.VAA16746@ns.caldera.de \
--to=hch@caldera.de \
--cc=bsuparna@in.ibm.com \
--cc=kiobuf-io-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=sct@redhat.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