From: Rusty Russell <rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
To: Jens Axboe <jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Cc: kvm-devel
<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
lguest <lguest-mnsaURCQ41sdnm+yROfE0A@public.gmane.org>,
virtualization
<virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
Subject: Re: [PATCH 4/6] virtio block driver
Date: Fri, 21 Sep 2007 22:30:11 +1000 [thread overview]
Message-ID: <1190377811.27805.39.camel@localhost.localdomain> (raw)
In-Reply-To: <20070921114703.GN2367-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
On Fri, 2007-09-21 at 13:47 +0200, Jens Axboe wrote:
> On Fri, Sep 21 2007, Rusty Russell wrote:
> > On Thu, 2007-09-20 at 15:05 +0200, Jens Axboe wrote:
> > > We have end_queued_request(), lets add end_dequeued_request(). Below.
> >
> > OK, thanks, I'll throw that in the mix and test...
>
> I've queued it for 2.6.24 as well, so should be in mainline in that time
> frame.
OK, I'll sit it in my queue so my patches work until then.
> > > > + vblk->sg[0].page = virt_to_page(&vbr->out_hdr);
> > > > + vblk->sg[0].offset = offset_in_page(&vbr->out_hdr);
> > > > + vblk->sg[0].length = sizeof(vbr->out_hdr);
> > > > + num = blk_rq_map_sg(q, vbr->req, vblk->sg+1);
> > >
> > > This wont work for chained sglists, but I gather (I'm so funny) that it
> > > wont be an issue for you. How large are your sglists?
> >
> > Hmm, potentially extremely large. What do I need to do for chained
> > sglists?
>
> Not a lot, actually. You snipped the problematic part in your reply,
> though:
>
> vblk->sg[num+1].page = virt_to_page(&vbr->in_hdr);
>
> which assumes that sg is a contigious piece of memory, for chained sg
> lists that isn't true. sg chaining will be in 2.6.24, so if you really
> do need large sglists, then that's the way to go.
I'm not sure if I need large sglists here. Obviously I want to handle
anything the block layer can give to me (assume you're going to increase
MAX_PHYS_SEGMENTS soon?). This might make "vblk" too big to kmalloc
easily:
struct virtio_blk
{
...
/* Scatterlist: can be too big for stack. */
struct scatterlist sg[3+MAX_PHYS_SEGMENTS];
};
The sglist for virtio is really a scratch space to represent the request
buffers (with one element for metadata at start and one at end) which we
hand through to the virtio layer which turns it into its internal
descriptors for the host to read.
Have you thought of putting an sglist inside the req itself? Then
instead of blk_rq_map_sg() it'd just be req->sg? It could just be a
chain of sg's in each bio I guess.
This would allow me to just to borrow that request sg chain, rather than
doing the req -> sg -> virtio double-conversion.
> > Except "0/1" is not canonical in the kernel. Arguably, "-errno/0" is
> > canonical. OTOH, bool is clear.
>
> -errno/0, then. 1 is typically used for 'failure without specific error
> number' when -Exx doesn't apply. Like the above :-)
See, I'd be absolutely sure that >= 0 is success (like all syscalls),
and I'd be appalled by code which used it as failure.
So I think you're right that we should agree to disagree :)
Thanks!
Rusty.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
next prev parent reply other threads:[~2007-09-21 12:30 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-20 12:03 [PATCH 0/6] virtio with config abstraction and ring implementation Rusty Russell
2007-09-20 12:09 ` [PATCH 1/6] virtio interace Rusty Russell
[not found] ` <1190289808.7262.223.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:09 ` Rusty Russell
2007-09-20 12:12 ` [PATCH 2/6] virtio_config Rusty Russell
2007-09-20 12:27 ` [kvm-devel] [PATCH 1/6] virtio interace Avi Kivity
[not found] ` <1190290140.7262.228.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:12 ` [PATCH 2/6] virtio_config Rusty Russell
2007-09-20 12:14 ` [PATCH 3/6] virtio net driver Rusty Russell
2007-09-20 12:36 ` [kvm-devel] [PATCH 2/6] virtio_config Avi Kivity
[not found] ` <1190290369.7262.231.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:14 ` [PATCH 3/6] virtio net driver Rusty Russell
2007-09-20 12:16 ` [PATCH 4/6] virtio block driver Rusty Russell
[not found] ` <1190290495.7262.235.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:16 ` Rusty Russell
2007-09-20 12:19 ` [PATCH 5/6] virtio console driver Rusty Russell
2007-09-20 12:27 ` [PATCH 4/6] virtio block driver Jens Axboe
2007-09-20 13:05 ` Jens Axboe
[not found] ` <1190290606.7262.239.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:19 ` [PATCH 5/6] virtio console driver Rusty Russell
2007-09-20 12:27 ` [PATCH 6/6] virtio ring helper Rusty Russell
[not found] ` <1190290761.7262.242.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:27 ` Rusty Russell
[not found] ` <1190291234.7262.246.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:43 ` Avi Kivity
[not found] ` <46F26AF6.60904-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-21 2:04 ` Rusty Russell
[not found] ` <1190340251.19451.36.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-23 10:05 ` Avi Kivity
2007-09-23 11:40 ` [kvm-devel] " Rusty Russell
[not found] ` <46F63A64.9070200-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-23 11:40 ` Rusty Russell
2007-09-23 11:46 ` [kvm-devel] " Avi Kivity
[not found] ` <1190547607.27805.120.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-23 11:46 ` Avi Kivity
2007-09-23 10:05 ` [kvm-devel] " Avi Kivity
2007-09-21 2:04 ` Rusty Russell
2007-09-20 12:43 ` Avi Kivity
2007-09-20 12:27 ` [PATCH 4/6] virtio block driver Jens Axboe
[not found] ` <20070920122713.GK2367-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2007-09-21 12:00 ` Rusty Russell
[not found] ` <1190376007.27805.19.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-21 12:27 ` Jens Axboe
2007-09-23 6:47 ` Rusty Russell
[not found] ` <20070921122746.GO2367-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2007-09-23 6:47 ` Rusty Russell
2007-09-21 12:27 ` Jens Axboe
2007-09-21 12:00 ` Rusty Russell
2007-09-20 13:05 ` Jens Axboe
2007-09-21 2:06 ` Rusty Russell
[not found] ` <1190340367.19451.40.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-21 11:47 ` Jens Axboe
[not found] ` <20070921114703.GN2367-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2007-09-21 12:30 ` Rusty Russell [this message]
2007-09-21 12:30 ` Rusty Russell
2007-09-21 11:47 ` Jens Axboe
2007-09-21 10:48 ` [PATCH 3/6] virtio net driver Christian Borntraeger
2007-09-21 11:53 ` [kvm-devel] " Rusty Russell
[not found] ` <200709211248.11783.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-09-21 11:53 ` Rusty Russell
2007-09-21 12:36 ` [kvm-devel] " Christian Borntraeger
[not found] ` <1190375615.27805.9.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-21 12:36 ` Christian Borntraeger
[not found] ` <200709211436.43964.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-09-21 14:08 ` Herbert Xu
[not found] ` <20070921140833.GA12242-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2007-09-21 14:42 ` Christian Borntraeger
2007-09-23 7:13 ` [kvm-devel] " Rusty Russell
[not found] ` <200709211642.25208.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-09-23 7:13 ` Rusty Russell
2007-09-21 14:42 ` [kvm-devel] " Christian Borntraeger
2007-09-21 14:59 ` [PATCH] note that NETIF_F_LLTX is deprecated (was: [kvm-devel][PATCH 3/6] virtio net driver) Christian Borntraeger
2007-09-22 0:57 ` Herbert Xu
2007-09-26 2:42 ` [PATCH] note that NETIF_F_LLTX is deprecated David Miller
2007-09-21 14:08 ` [kvm-devel] [PATCH 3/6] virtio net driver Herbert Xu
2007-09-21 10:48 ` Christian Borntraeger
2007-09-20 12:36 ` [PATCH 2/6] virtio_config Avi Kivity
[not found] ` <46F26958.4080102-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-20 12:55 ` Avi Kivity
[not found] ` <46F26DC7.9040001-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-21 1:50 ` Rusty Russell
2007-09-22 13:03 ` [kvm-devel] " Avi Kivity
[not found] ` <1190339435.19451.23.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-22 13:03 ` Avi Kivity
2007-09-21 1:50 ` [kvm-devel] " Rusty Russell
2007-09-20 12:55 ` Avi Kivity
2007-09-20 12:27 ` [PATCH 1/6] virtio interace Avi Kivity
2007-09-21 11:37 ` [kvm-devel] " Rusty Russell
2007-09-21 12:05 ` Arnd Bergmann
2007-09-21 12:45 ` Rusty Russell
[not found] ` <200709211405.32116.arnd-r2nGTMty4D4@public.gmane.org>
2007-09-21 12:45 ` Rusty Russell
[not found] ` <1190378736.27805.54.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-21 14:22 ` Arnd Bergmann
2007-09-22 9:55 ` Rusty Russell
[not found] ` <1190454934.27805.80.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-22 10:01 ` Arnd Bergmann
[not found] ` <200709221201.33865.arnd-r2nGTMty4D4@public.gmane.org>
2007-09-23 8:33 ` Rusty Russell
[not found] ` <1190536431.27805.109.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-23 11:20 ` Dor Laor
2007-09-23 11:20 ` Dor Laor
2007-09-23 8:33 ` Rusty Russell
2007-09-22 10:01 ` Arnd Bergmann
2007-09-21 14:22 ` Arnd Bergmann
2007-09-21 12:05 ` Arnd Bergmann
2007-09-20 13:43 ` [PATCH 0/6] virtio with config abstraction and ring implementation Dor Laor
2007-09-20 13:50 ` [Lguest] [PATCH 0/6] virtio with config abstraction and ringimplementation Dor Laor
[not found] ` <46F2791A.8070601-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-20 13:50 ` Dor Laor
2007-09-21 3:20 ` [PATCH 0/6] virtio with config abstraction and ring implementation Rusty Russell
2007-09-20 13:43 ` Dor Laor
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=1190377811.27805.39.camel@localhost.localdomain \
--to=rusty-8n+1lvoiyb80n/f98k4iww@public.gmane.org \
--cc=jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=lguest-mnsaURCQ41sdnm+yROfE0A@public.gmane.org \
--cc=virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.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 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.