[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] Linux Device Drivers modified in Xen ?

  • To: "Mark Williamson" <mark.williamson@xxxxxxxxxxxx>
  • From: "Phani Babu Giddi" <phanig@xxxxxxxxx>
  • Date: Sat, 8 Dec 2007 14:01:41 -0800
  • Cc: xen-users@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Sat, 08 Dec 2007 14:02:30 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=TiYgJ0Y2y6k3dmFFEsz9u5xbxCquSsu5mSUqD89smLDm+7XdATmx+cZeKTQ9VEddQk54w0A9a33om5ahtMv+ysF/qeu5pedpC21LPovKW5uDDc4gngRk7iJX1jTQFBvtYb/p22f4M9nNqxzii96IqKKTplCiKmWpnUhDpAoaBdc=
  • List-id: Xen user discussion <xen-users.lists.xensource.com>

Hi Mark,
Thanks for the reply. Couple of queries...
1. What happens in the case of a char driver, do I have to necessarily run it dom0? If so can a buggy driver bring down dom0 or other drivers ? I know dom0 is isolated but is it protected inside also.
2. Assuming that the char driver has been compiled against XenLinux and it is running in dom0 then what are the other modifications that I need to do in order to access it from guest OSs.
3. In general if XenLinux has a generic framework for block, net, and other bus drivers do guest OSs need to change worry about writing/modifying its native drivers ?

On Dec 8, 2007 9:57 AM, Mark Williamson <mark.williamson@xxxxxxxxxxxx> wrote:
> I have spent enough time trying to find out if the native device drivers in
> Linux need to be modified for it to work on Linux or not. I havent been
> able to find a specific answer, so I thought i will post a query on this
> list. So here are a list of some question that I have.
> 1. Will native Linux device drivers work when running on Zen VMM?

The source code of native Linux drivers does not need to be modified for use
in dom0 or a driver domain.  Occasionally a driver doesn't work because of
bugs / assumptions and these have to be fixed but usually well-written
drivers will Just Work when compiled against the XenLinux kernel and loaded.

You can't load a driver that was compiled against non-Xen Linux, but then you
can't generally load drivers that were compiled against different Linuxes
anyhow, due to the lack of a stable ABI.

> 2. Has XenSource or somebody have written the front end and back end driver
> for every device driver in Linux ? Or is it that only for a limited set of
> devices the front end and back end drivers were developed.

The main front / back drivers available are block (should work with any
physical block device) and net (should work with any physical net device).

There's also a simple, low performance framebuffer front / back driver.

There's some basic support for passing specific USB devices to HVM guests in
the tree.  It's also possible to assign whole PCI devices to a PV guest (or
HVM, in the unstable tree).  There's a pvSCSI driver in the works (you can
already access SCSI disks, this extends support to other peripherals).  These
techniques (do / will / should) allow you to pass devices into a guest that
are not supported by the generic front / back device classes.

> 3. Is there some kind of documentation availabl for writing split device
> drivers?

There's some documentation in the interface manual in the source tree,
probably some on the wiki.  The code may also be helpful to read.

The papers here
(http://www.cl.cam.ac.uk/research/srg/netos/xen/architecture.html) are also
worth reading, especially "Safe Hardware Access with the Xen Virtual Machine
Monitor" for a description of the IO architecture and "Xen and the Art of
Virtualization" for general Xen background.

You can also ask technical questions about implementation on the xen-devel
mailing list.  The mailing list archive is possibly worth a look too.

Hope that helps,


Dave: Just a question. What use is a unicyle with no seat?  And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.