From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rusty Russell Subject: Re: virtio & hypercall interface? Date: Sat, 15 Sep 2007 18:32:33 +1000 Message-ID: <1189845153.7262.94.camel@localhost.localdomain> References: <1189664514.32322.14.camel@localhost.localdomain> <64F9B87B6B770947A9F8391472E032160DA17EF2@ehost011-8.exch011.intermedia.net> <46E9A17D.5040205@us.ibm.com> <46EABAD0.40300@qumranet.com> <46EB0BD8.6040000@qumranet.com> <1189825560.7262.77.camel@localhost.localdomain> <46EB9245.4010005@qumranet.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel To: Avi Kivity Return-path: In-Reply-To: <46EB9245.4010005-atKUWr5tajBWk0Htik3J/w@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 On Sat, 2007-09-15 at 11:05 +0300, Avi Kivity wrote: > Rusty Russell wrote: > > On Sat, 2007-09-15 at 01:31 +0300, Dor Laor wrote: > > > >> Second, regardless of the channel signal notification, there are still > >> real necessities for userspace hypercall handling: > >> 1. For virtio drivers there is also registration hypercall for passing > >> the shared memory pfns. > >> Sure there are other possibilities, but why limit ourselves? > >> > > > > I really prefer doing this the more "hardware-like" way and having the > > device description say where the pages are. Surely this is simpler from > > the qemu side, too? > > > > This is mmio style (device provides memory). DMA style (guest provides > memory, device dmas it) is easier for kvm: we don't need to allocate a > new memory slot, and migration is easier. > > Most current hardware place the descriptor ring in guest memory, not the > device, since mmio is slower for the cpu than RAM. But for virtual devices it seems unnecessarily convoluted: we'd have some mmio space (or PCI config space?) to tell the device where the ring buffer is. That's a little nasty for lguest early printk, too. I'm looking now at getting lguest to present a PCI bus implementation (probably changing virtbus to a series of PCI id plus bytes for "config space"). That's easier with a "device mem" model, since no config info needs to go back to the host. OTOH, with the guest memory model, guest can potentially choose size of ring. I don't know if that's an actual advantage (but I have code now which makes the ring size variable). 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/