From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [Xen-devel] Re: [PATCH RFC 1/3] virtio infrastructure Date: Mon, 04 Jun 2007 12:55:25 +0300 Message-ID: <4663E18D.4030007@qumranet.com> References: <1180613947.11133.58.camel@localhost.localdomain> <46610E8D.10706@qumranet.com> <1180777836.9228.44.camel@localhost.localdomain> <46625192.5020108@qumranet.com> <1180866540.17442.74.camel@localhost.localdomain> <4662A86A.7010706@qumranet.com> <1180914836.17442.104.camel@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: Jimi Xenidis , Stephen Rothwell , Xen Mailing List , "jmk-zzFmDc4TPjtKvsKVC3L/VUEOCMrvLtNR@public.gmane.org" , Herbert Xu , kvm-devel , virtualization , Christian Borntraeger , Suzanne McIntosh , Martin Schwidefsky To: Rusty Russell Return-path: In-Reply-To: <1180914836.17442.104.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Rusty Russell wrote: > On Sun, 2007-06-03 at 14:39 +0300, Avi Kivity wrote: > >> Rusty Russell wrote: >> >>> Hmm... Perhaps I should move the used arrays into the "struct >>> virtio_device" and guarantee that the id (returned by add_*buf) is an >>> index into that. Then we can trivially add a corresponding bit array. >>> >> That may force the virtio backend to do things it doesn't want to. >> > > Well, I have two implementations, and both ids already fit this model so > I have some confidence. I just need to add the set_bit/clear_bit to the > read/write one, and use sync_clear_bit to the descriptor-based one > (which I suspect will actually get a little cleaner). > > So I think this constraint is a reasonable thing to add anyway. > > Some hardware (tulip IIRC, but long time ago) allows linked list based descriptors. If a virtio implementation takes a similar approach, it may not have an array of descriptors. Networking hardware generally services descriptors in a FIFO manner. virtio may not (for example, it may offload copies of larger packets to a dma engine such as I/OAT, resulting in a delay, but copy smaller packets immediately). that means that there will be some mismatch between virtio drivers and real hardware drivers. For block devices, reordering is a matter of course, and virtio needs to efficiently support that. Queues are generally shorter for block, though. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/