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

[Xen-devel] How to do direct assignment of devices to VM in Xen.

  • To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Saripalli, Ramakrishna" <ramakrishna.saripalli@xxxxxxxxx>
  • Date: Tue, 27 Jun 2006 22:14:41 -0700
  • Delivery-date: Tue, 27 Jun 2006 22:15:52 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcaaccLUvPyP5ggMS6GwrJN2XEhRDg==
  • Thread-topic: How to do direct assignment of devices to VM in Xen.

I have installed Suse Enterprise 10 RC 2.5 x64 edition on a dual proc EM64T machine that I have @ work. Here is what I am booting. The chipset does not have any IOMMU engine in it. The processor has Intel® VT-x extensions enabled.


  • I boot to the Xen kernel option in GRUB.
  • I have installed the same image as a VM (is that ok) using the Xen management console in the control panel. I assume this is the user kernel and the Xen kernel itself is dom0.
  • I have a specialized PCIe device that appears in the config space of the kernel (when I do lspci –vv).
    • Of course, it does not appear in the VM kernel. In fact, lspci returns a null string.
  • I would like to assign the device directly to the VM kernel.
    • What is the procedure I need to do to recompile the kernel (both dom0 and VM kernel) to make this happen?.
    • Essentially, the driver running in the VM should be able to access the device using its config space, issue MMIO requests as well as program the device with DMA requests. The DMA requests should obviously be using host physical addresses.
    • How do the VM kernels know about host physical addresses?.
      • Can they make a hypercall to get a HPA from a VM GPA?.
    • Alternatively, I could have a proxy in the dom0 kernel that programs the device with DMA regions and then does double buffering from its regions to the VM GPA.
      • Even then, I am assuming that the hypercalls would have to be implemented.


Another question. Since the Xen in the above Linux distribution is using Intel® VT-x extensions, how do I dump the VMCS for the user image when I boot the Xen kernel?. Is there a virtual device in the /dev filesystem that points to the user image’s memory dump (kind of like /dev/kmem for the VM GPA).




Xen-devel mailing list



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