This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] Paravirtualised drivers for fully virtualised domains

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] Paravirtualised drivers for fully virtualised domains
From: Steven Smith <sos22-xen@xxxxxxxxxxxxx>
Date: Wed, 26 Jul 2006 16:34:52 +0100
Cc: sos22@xxxxxxxxxxxxx
Delivery-date: Wed, 26 Jul 2006 08:41:37 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <20060718125106.GA4727@xxxxxxxxx>
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: <20060718125106.GA4727@xxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
I've just put an updated version of these patches up at
http://www.cl.cam.ac.uk/~sos22/pv-on-hvm/rev2 .  There's also an
equivalent single big patch at
http://www.cl.cam.ac.uk/~sos22/pv-on-hvm/rev2.combined .  Thank you to
everyone who gave feedback on the previous version.

The main changes since last time are:

-- Support for SMP guests
-- Support for 64 bit guests on a 64 bit hypervisor
-- Partial support for 32 bit guests on a 64 bit hypervisor: the network
   interface works, but the block device doesn't.

The block device can be made to work by #define'ing ALIEN_INTERFACES
in blkif.h, but drivers compiled in that way won't work with 32 on 32.
The problem here is that blkif_request_t contains extra padding in 64
bit builds, and so is a different size, and so the block ring layout
is different.

Other structures with similar problems are handled either by run time
tests in the drivers (shared_info_t) or translation wrappers in the
hypervisor (xen_feature_info_t, xen_add_to_physmap_t), but trying to
do this for the block rings would require far more painful and
extensive surgery.  I'm inclined to stick with multiply compiling the
frontend drivers in the short term, although it'll obviously need
doing in a slightly less grotty way.


Attachment: signature.asc
Description: Digital signature

Xen-devel mailing list