From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Rusty Russell <rusty-8n+1lVoiYb80n/F98K4Iww@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 6/6] virtio ring helper
Date: Sun, 23 Sep 2007 12:05:24 +0200 [thread overview]
Message-ID: <46F63A64.9070200@qumranet.com> (raw)
In-Reply-To: <1190340251.19451.36.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
Rusty Russell wrote:
> On Thu, 2007-09-20 at 14:43 +0200, Avi Kivity wrote:
>
>> Rusty Russell wrote:
>>
>>> These helper routines supply most of the virtqueue_ops for hypervisors
>>> which want to use a ring for virtio. Unlike the previous lguest
>>> implementation:
>>>
>>> 3) The page numbers are always 64 bit (PAE anyone?)
>>>
>>>
>> 32 bits of page numbers give 44 bits of physical address on x86. That's
>> 16TB per guest. Admittedly it's smaller on a VAX.
>>
>
> I like to feel that I make these mistakes to ensure others are paying
> attention. However, it does mean that I can just put an address in
> there and increase the length field to 32 bits. Much rejoicing.
>
>
Why are we sending page numbers anyway? See below.
>> I don't like the chaining and would prefer the descriptor to refer to an
>> array of page descriptors. However I can't complain since this isn't
>> common code.
>>
>
> The intent is for kvm to use it. I'll certainly consider your patches,
> although I suspect that managing descriptor pages will make things ugly
> enough to cause you to reconsider.
>
How about, instead:
struct vring_desc {
__u64 address;
__u32 length;
__u32 flags;
};
Where one of the flags is VRING_DESC_INDIRECT, which means that the
memory within (address, length) is a bunch of descriptors instead of raw
data.
This has the following nice properties:
- no dependency on page size, for archs where the page size definition
is muddy
- no indirection for ethernet rx on Linux, even with jumbograms (a
buffer can span pages in one descriptor, as long as they're physically
contiguous)
- reward OSes that can do contiguous I/O (with a 32-bit length, too)
- keeps the interface simple at the expense of the implementation
(address vs. page+offset)
- no nasty 16-bit fields, which some archs don't like
- be free! cast off your chains!
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
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-23 10:05 UTC|newest]
Thread overview: 79+ 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
[not found] ` <1190290369.7262.231.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-20 12:14 ` 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
[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
2007-09-20 12:43 ` [kvm-devel] " Avi Kivity
[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 [this message]
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: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
2007-09-21 12:27 ` Jens Axboe
[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: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
2007-09-21 12:30 ` Rusty Russell
[not found] ` <20070921114703.GN2367-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2007-09-21 12:30 ` Rusty Russell
2007-09-21 11:47 ` Jens Axboe
2007-09-20 13:05 ` Jens Axboe
2007-09-21 10:48 ` [PATCH 3/6] virtio net driver Christian Borntraeger
[not found] ` <200709211248.11783.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-09-21 11:53 ` Rusty Russell
[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
2007-09-21 14:42 ` [kvm-devel] " Christian Borntraeger
[not found] ` <20070921140833.GA12242-lOAM2aK0SrRLBo1qDEOMRrpzq4S04n8Q@public.gmane.org>
2007-09-21 14:42 ` Christian Borntraeger
[not found] ` <200709211642.25208.borntraeger-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-09-23 7:13 ` Rusty Russell
2007-09-23 7:13 ` [kvm-devel] " Rusty Russell
2007-09-21 14:08 ` Herbert Xu
2007-09-21 12:36 ` Christian Borntraeger
2007-09-21 11:53 ` Rusty Russell
2007-09-21 10:48 ` Christian Borntraeger
2007-09-20 12:36 ` [PATCH 2/6] virtio_config Avi Kivity
2007-09-20 12:55 ` [kvm-devel] " 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:36 ` 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
2007-09-21 14:22 ` Arnd Bergmann
[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
2007-09-22 10:01 ` Arnd Bergmann
[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
2007-09-23 11:20 ` Dor Laor
[not found] ` <1190536431.27805.109.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-23 11:20 ` Dor Laor
2007-09-23 8:33 ` Rusty Russell
2007-09-21 12:05 ` Arnd Bergmann
2007-09-20 13:43 ` [PATCH 0/6] virtio with config abstraction and ring implementation Dor Laor
[not found] ` <46F2791A.8070601-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-20 13:50 ` [Lguest] [PATCH 0/6] virtio with config abstraction and ringimplementation Dor Laor
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=46F63A64.9070200@qumranet.com \
--to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=lguest-mnsaURCQ41sdnm+yROfE0A@public.gmane.org \
--cc=rusty-8n+1lVoiYb80n/F98K4Iww@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.