xen-devel
[Xen-devel] Re: [PATCH RFC 3/3] Virtio draft III: example block driver
To: |
Rusty Russell <rusty@xxxxxxxxxxxxxxx> |
Subject: |
[Xen-devel] Re: [PATCH RFC 3/3] Virtio draft III: example block driver |
From: |
Avi Kivity <avi@xxxxxxxxxxxx> |
Date: |
Mon, 18 Jun 2007 12:09:09 +0300 |
Cc: |
Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>, Xen Mailing List <xen-devel@xxxxxxxxxxxxxxxxxxx>, "jmk@xxxxxxxxxxxxxxxxxxx" <jmk@xxxxxxxxxxxxxxxxxxx>, kvm-devel <kvm-devel@xxxxxxxxxxxxxxxxxxxxx>, virtualization <virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx>, Christian Borntraeger <cborntra@xxxxxxxxxx>, Latchesar Ionkov <lionkov@xxxxxxxx>, Suzanne McIntosh <skranjac@xxxxxxxxxx>, Jens Axboe <jens.axboe@xxxxxxxxxx>, Martin Schwidefsky <schwidefsky@xxxxxxxxxx> |
Delivery-date: |
Mon, 18 Jun 2007 02:07:28 -0700 |
Envelope-to: |
www-data@xxxxxxxxxxxxxxxxxx |
In-reply-to: |
<1182154095.19064.24.camel@xxxxxxxxxxxxxxxxxxxxx> |
List-help: |
<mailto:xen-devel-request@lists.xensource.com?subject=help> |
List-id: |
Xen developer discussion <xen-devel.lists.xensource.com> |
List-post: |
<mailto:xen-devel@lists.xensource.com> |
List-subscribe: |
<http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe> |
List-unsubscribe: |
<http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe> |
References: |
<1181217762.14054.192.camel@xxxxxxxxxxxxxxxxxxxxx> <1181999552.6237.255.camel@xxxxxxxxxxxxxxxxxxxxx> <1181999669.6237.257.camel@xxxxxxxxxxxxxxxxxxxxx> <1181999825.6237.260.camel@xxxxxxxxxxxxxxxxxxxxx> <1181999920.6237.263.camel@xxxxxxxxxxxxxxxxxxxxx> <46754451.2010305@xxxxxxxxxxxx> <1182154095.19064.24.camel@xxxxxxxxxxxxxxxxxxxxx> |
Sender: |
xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |
User-agent: |
Thunderbird 2.0.0.0 (X11/20070419) |
Rusty Russell wrote:
On Sun, 2007-06-17 at 17:25 +0300, Avi Kivity wrote:
Rusty Russell wrote:
+ /* Set up for reply. */
+ vblk->sg[0].page = virt_to_page(&vbr->in_hdr);
+ vblk->sg[0].offset = offset_in_page(&vbr->in_hdr);
+ vblk->sg[0].length = sizeof(vbr->in_hdr);
+ num = blk_rq_map_sg(q, vbr->req, vblk->sg+1);
+ vbr->out_hdr.id = vblk->vdev->ops->add_inbuf(vblk->vdev, vblk->sg,
+ 1+num, vbr);
+ if (IS_ERR_VALUE(vbr->out_hdr.id))
+ goto full;
+
+ 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);
+
+ vbr->out_id = vblk->vdev->ops->add_outbuf(vblk->vdev, vblk->sg, 1,
+ vbr);
This strikes me as wasteful. Why not set up a single descriptor which
contains both placement and the data itself?
We could actually do this for write, but not for read (where the length
& sector need to be sent to other end, and the data comes from other
end).
So you map the first sg entry for output, and the rest for input.
Less pretty, but more efficient.
--
error compiling committee.c: too many arguments to function
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] Re: [PATCH RFC 2/3] Virtio draft II: example block driver, (continued)
[Xen-devel] [PATCH RFC 0/3] Virtio draft III, Rusty Russell
[Xen-devel] Re: [PATCH RFC 2/3] Virtio draft III: example net driver, Brian King
[Xen-devel] Re: [kvm-devel] [PATCH RFC 2/3] Virtio draft III: example net driver, Christoph Hellwig
[Xen-devel] Re: [kvm-devel] [PATCH RFC 2/3] Virtio draft III: example net driver, Avi Kivity
[Xen-devel] Re: [kvm-devel] [PATCH RFC 2/3] Virtio draft III: example net driver, Brian King
[Xen-devel] Re: [kvm-devel] [PATCH RFC 2/3] Virtio draft III: example net driver, Avi Kivity
[Xen-devel] Re: [PATCH RFC 2/3] Virtio draft III: example net driver, Rusty Russell
[Xen-devel] Re: [PATCH RFC 2/3] Virtio draft III: example net driver, Brian King
[Xen-devel] Re: [kvm-devel] [PATCH RFC 0/3] Virtio draft III, Avi Kivity
|
|
|