From: "Stephen C. Tweedie" <sct@redhat.com>
To: bsuparna@in.ibm.com
Cc: linux-kernel@vger.kernel.org,
kiobuf-io-devel@lists.sourceforge.net,
Stephen Tweedie <sct@redhat.com>
Subject: Re: [Kiobuf-io-devel] RFC: Kernel mechanism: Compound event wait/notify + callback chains
Date: Wed, 31 Jan 2001 23:43:51 +0000 [thread overview]
Message-ID: <20010131234351.J11607@redhat.com> (raw)
In-Reply-To: <CA2569E4.001AB22F.00@d73mta05.au.ibm.com>
In-Reply-To: <CA2569E4.001AB22F.00@d73mta05.au.ibm.com>; from bsuparna@in.ibm.com on Tue, Jan 30, 2001 at 10:15:02AM +0530
Hi,
On Tue, Jan 30, 2001 at 10:15:02AM +0530, bsuparna@in.ibm.com wrote:
>
> Comments, suggestions, advise, feedback solicited !
My first comment is that this looks very heavyweight indeed. Isn't it
just over-engineered?
We _do_ need the ability to stack completion events, but as far as the
kiobuf work goes, my current thoughts are to do that by stacking
lightweight "clone" kiobufs.
The idea is that completion needs to pass upwards (a)
bytes-transferred, and (b) errno, to satisfy the caller: everything
else, including any private data, can be hooked by the caller off the
kiobuf private data (or in fact the caller's private data can embed
the clone kiobuf).
A clone kiobuf is a simple header, nothing more, nothing less: it
shares the same page vector as its parent kiobuf. It has private
length/offset fields, so (for example) a LVM driver can carve the
parent kiobuf into multiple non-overlapping children, all sharing the
same page list but each one actually referencing only a small region
of the whole.
That ought to clean up a great deal of the problems of passing kiobufs
through soft raid, LVM or loop drivers.
I am tempted to add fields to allow the children of a kiobuf to be
tracked and identified, but I'm really not sure it's necessary so I'll
hold off for now. We already have the "io-count" field which
enumerates sub-ios, so we can define each child to count as one such
sub-io; and adding a parent kiobuf reference to each kiobuf makes a
lot of sense if we want to make it easy to pass callbacks up the
stack. More than that seems unnecessary for now.
--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/
prev parent reply other threads:[~2001-01-31 23:45 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-30 4:45 RFC: Kernel mechanism: Compound event wait/notify + callback chains bsuparna
2001-01-30 5:29 ` [Kiobuf-io-devel] " Ben LaHaise
2001-01-30 6:38 ` Matthew Jacob
2001-01-30 7:29 ` Multiplexing mouse input Dax Kelson
2001-01-30 8:59 ` Ben Ford
2001-01-30 16:14 ` Joel Jaeggli
2001-01-30 17:06 ` James Simmons
2001-01-31 23:43 ` Stephen C. Tweedie [this message]
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=20010131234351.J11607@redhat.com \
--to=sct@redhat.com \
--cc=bsuparna@in.ibm.com \
--cc=kiobuf-io-devel@lists.sourceforge.net \
--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