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


[Xen-devel] [RFC] [0/4] User-space grants for Console and XenStore

To: xen-devel@xxxxxxxxxxxxxxxxxxx, xense-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [RFC] [0/4] User-space grants for Console and XenStore
From: Derek Murray <Derek.Murray@xxxxxxxxxxxx>
Date: Wed, 2 May 2007 12:15:18 +0100
Delivery-date: Wed, 02 May 2007 04:18:24 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Following on from the introduction of a User-space grant table device ("gntdev" - see http://lists.xensource.com/archives/html/xen-devel/ 2007-03/msg01337.html for more details), I have modified the domain building process so that the grant table mechanism is used for communication with the console and XenStore daemons. This replaces the use of xc_map_foreign_range().

The development was carried out as follows:

* Added a new gnttabop, which installs grant table entries into the reserved section of the grant table. * Modified the domain builder to install entries for the console and XenStore pages for each new domain (using fixed entry numbers). * Modified the console and XenStore daemons to use xc_gnttab_map_grant_ref() in place of xc_map_foreign_range().

I've tested this locally (on x86_32 and x86_64) and it seems to work. There are a few remaining concerns that I have:

* Will this work on ia64 and PowerPC?
* How will this integrate with XSM? The install-grant operation is clearly as privileged as the ability to map arbitrary memory from a foreign domain, so could these share a hook? * Solaris support? I don't know enough about Solaris to know what changes must be made to gntdev for it to run there. Since these changes hit presumably portable code, would it be acceptable to have an #ifdef in the console and XenStore daemons?

The patch is structured as follows:

1. gnttabop.patch - Changes to the hypervisor to add the install- entry gnttabop. 2. libxc.patch - Changes to libxc to install grants for the console and XenStore pages. 3. xenconsoled.patch - Changes to the console daemon to use grant references. 4. xenstored.patch - Changes to the XenStore daemon to use grant references.

I would welcome your input on this.


Derek Murray.

Xen-devel mailing list