[libvirt] [PATCH] RFC: bhyve: implement PCI address allocation

Roman Bogorodskiy bogorodskiy at gmail.com
Sun Apr 13 05:53:26 UTC 2014


Hi,

This is the first attempt to implement PCI address allocation for the
bhyve driver. This patch is by no means a complete version and the idea
of this is to understand if I'm moving in a right direction.

This code is based on the one from QEMU driver. Even though bhyve currently
has no support for PCI bridges, it should be possible to add that
support without major rewrites when this feature will be available in bhyve.

So, currently we have the following.  For a domain like that:

https://gist.github.com/novel/10569989#file-domainin-xml

The processed domain looks this way:

https://gist.github.com/novel/10569989#file-domainout-xml

and the command is:

https://gist.github.com/novel/10569989#file-cmd

Please let me know if it's uncomfortable to follow gist links; I didn't 
put domain xml inline as it's pretty lengthy.

Open questions are:

 * What's the best way to deal with the 0:0,hostbridge device, should it
   be explicitly added to the domain definition?
 * How to handle lpc device, that's required for console. From bhyve point
   of view it looks like this:
 
     -s 31,lpc -l com1,ttydev

   That is, LPC PCI-ISA bridge on PCI slot and com1 port on that bridge.

Things that need to be fixed in that patch, but are obvious:

 * Fix 'make check' which fails for obvious reasons of new addresses in domain xml
 * As we support more than one disk device, respect boot order



Roman Bogorodskiy (1):
  bhyve: implement PCI address allocation

 po/POTFILES.in            |   1 +
 src/Makefile.am           |   4 +
 src/bhyve/bhyve_command.c | 128 +++++++++++-----------
 src/bhyve/bhyve_device.c  | 272 ++++++++++++++++++++++++++++++++++++++++++++++
 src/bhyve/bhyve_device.h  |  41 +++++++
 src/bhyve/bhyve_domain.c  |  75 +++++++++++++
 src/bhyve/bhyve_domain.h  |  41 +++++++
 src/bhyve/bhyve_driver.c  |   9 +-
 8 files changed, 503 insertions(+), 68 deletions(-)
 create mode 100644 src/bhyve/bhyve_device.c
 create mode 100644 src/bhyve/bhyve_device.h
 create mode 100644 src/bhyve/bhyve_domain.c
 create mode 100644 src/bhyve/bhyve_domain.h

-- 
1.9.0




More information about the libvir-list mailing list