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

[Xen-devel] direct I/O access from domU

  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: "ron minnich" <rminnich@xxxxxxxxx>
  • Date: Wed, 6 Dec 2006 08:17:12 -0700
  • Delivery-date: Wed, 06 Dec 2006 07:17:09 -0800
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=IMlGwyzbR/GrJA4wcA5STEyiMP0SZX2OM/2zLPc6U8U9hcrdMaBoKbP+wELH0kiNpJM5LLcE6mRx4hxvFKDafqxV0iIN/XB57jOLJRGtxbshSxUcvx+5VfOld2ch5P0PHPDnMmVkZLCZlOHGIMPfr3Wz9mpCrhDTsFGhJaUQmv4=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

I want to make sure I am 'thinking about domU access to raw hardware correctly.

For our work we want to give Plan 9 domU direct access to a pci
device. This means that I/O, memory access is direct, IRQ goes to
domU, and so on. No intermediate access via dom0, and as little Xen
involvement as possible.

The way in which this is accomplished, from reading the docs and such
on the web, is not terribly clear to me.

I don't see any real use at present in pcifront. What would it do to
help that would not be done as well by direct access to 0xcf8/0xcfc?

For direct I/O mapping, some bits seem to be missing. I can ask for
the I/O range from domU, but there seem to be no tools that will let
me tell dom0 to allow a domU to have access to that range. From my
reading of source, some such tools are required. It would be much
better if I could specify the range in the /etc/xen/domU control file.
Do I need to write these tools?

Has anyone else out there tried this type of direct access to a device
from domU? I am also seeing problems with the pciback.hide etc. --
well, to put it simply, they don't seem to work at all.

If, for example, on Yenta, there is a driver loaded, the
/sys/bus/pci/devices/0000\:02\:00.0//driver symlink has a value. The
simple commands:
 echo -n 0000:2:0.0>/sys/bus/pci/drivers/pciback/new_slot
 echo -n bind 0000:2:0.0 > /sys/bus/pci/drivers/pciback/bind
have no effect on the value of this symlink. When I try to start the
domU, I get an error as the value of the symlink is not "pciback". It
seems I can not bind those devices if there is a driver loaded.

If there is no driver loaded for yenta, then the symlink has no value
and in fact does not exist. In this case, I get this error:
Error: pci: failed to locate device and parse it's resources - [Errno
2] No such file or directory:

In no case is there an error from the 'echo' commands -- they don't do
what they're supposed to do, but they do fail very quietly :-)

So, the big question: I want to give a domU direct access to Yenta; I
want the I/Os and memory areas and DMA and IRQs and whatever going to
domU with (ideally) 0 involvement from dom0. How do I do this?


Xen-devel mailing list



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