Tag Archives: paravirtualization

Using Grub 2 as a bootloader for Xen PV guests

Background: Introduction to Xen PV Bootloaders

In the very early days of Xen it was necessary for the host (domain 0)
administrator to explicitly supply a kernel (and perhaps initial
ramdisk) from the domain 0 filesystem in order to start a new guest.

This mostly worked and for some use cases, i.e. those where the host
admin wants very strict control over what each guest runs, was
desirable and remains so today.

However for other use cases it was rather inflexible since it meant
that the host administrator needed to be involved in what many
considered to be a guest administrator, or even distribution level,
decision i.e. the selection of which kernel to run, with what
parameters etc. Continue reading

The Windows PV Drivers Sub-Project

by Paul Durrant

Back in 2013 Citrix made XenServer fully open source. As part of that work the previously closed Windows drivers for paravirtual devices were opened up and made available to the community on GitHub. These drivers were still very much tied to XenServer though because of assumptions that were made about the platform and reliance on certain patches carried in the XenServer patch queues.

Shortly after setting up the driver repositories on GitHub I started removing these assumptions and dependencies on the XenServer platform and produced a set of drivers that could be used on most Xen installations. This put the code in a good state to approach the project community and Xen Project Advisory Board with a proposal for an incubation sub-project. I’m happy to say that this was and we are well under way in getting things set up. There is a new with information on the driver source repositories (which are now hosted on xenbits under a new pvdrivers/win sub-directory), instructions on how to build and install the drivers, and guidelines on how to contribute to the project.

Overview

The PV drivers are split into five packages:

XenBus

This is the key package that supports all other PV drivers. It provides the XENBUS driver which binds to either the XenServer variant of the (see in the hypervisor source repository) or the ubiquitous Xen Platform PCI Device, both of which are provided to HVM guests by QEMU.
This driver establishes communication with the Xen hypervisor and enumerates the paravirtual classes specified by the toolstack in xenstore. It also provides APIs to core Xen functionality such as event channels and the grant table.

XenVif

This package contains the network class driver XENVIF. This driver makes use of the APIs provided by XENBUS to implement the PV network protocol. It enumerates PV network devices (specified in the guest area in xenstore under device/vif) and provides a simple API to use the protocol.

XenNet

This package contains the NDIS 6 network device driver XENNET. This driver binds to the devices enumerated by XENVIF and provides a relatively thin glue layer between the Microsoft-defined NDIS miniport interface and the PV network API exported by XENVIF.

XenVbd

This package contains the storage class driver XENVBD and associated crash-kernel driver XENCRSH. XENVBD makes use of the APIs provided by XENBUS and the Windows STORPORT miniport interface to provide limited SCSI HBA functionality to the OS. It is limited in the fact that it only supports the operations necessary for the Windows generic DISK driver to function on the devices exposed by the HBA.

XenIface

This package contains the XENIFACE driver which creates WMI objects providing access to xenstore (see ) and system time, and a minimal user-space guest agent which uses those objects to provide facilities to cleanly shut down or reboot a guest and also re-synchronize guest time after a VM migrate/restore.

Xen Summit Boston Speakers Wanted

Attention, Attention, Attention. The Xen Summit Program Committee for the Boston event in June (23 – 24) is busy reviewing submitted topics and is waiting for your proposal. We are actively putting together the agenda and would like nothing more than to have you as a speaker. This is your chance to promote yourself and your work to the Xen.org community. To assist us, we are asking all interested speakers to submit their topics early this year so we can create the best possible event without having any last minute submissions which may get missed as many Xen Program Committee members will be taking vacation early this summer. Please submit your topics to stephen.spector@xen.org and I will ensure the Program Committee receives it for a timely review.

Call for Topics for Xen Summit

Calling all speakers, calling all speakers… The Xen Summit 2008 (June 23 – 24 in Boston, MA) agenda being created by the Xen Summit Program Committee is ready for development and we need your help. Have you had a desire to tell others about the great work you have done with Xen or are looking for fame and fortune in the Xen community? If so, we are looking for you. Please submit your topic ideas for consideration to stephen.spector@citrix.com by April 30, 2008 and I will ensure that it is considered by the Xen Summit Program Committee. The Xen Summit Program Committee will then review your idea and request further information such as an abstract, etc. All speakers chosen for Xen Summit 2008 will get all the glory and fame necessary to continue on as a leader in the Xen community.