These patches implements a separate module for hostdev passthrough so that it
could be shared by different drivers and can maintain a global state of a host
device. Plus, add passthrough to libxl driver, and change qemu driver and lxc
driver to use hostdev common library instead of their own hostdev APIs.
---
Changes to v5:
* For upgrade concern, check netconfig file in old stateDir xxx/qemu/ if it's
not found in new location xxx/hostdevmgr/, since if there is existing VM,
then after upgrade, NetConfigRestore should find the netconfig file from old
stateDir place.
* Rebase to new qemu_hostdev changes, e.g, prefer VFIO, and add CheckSupport.
* Put into separate patches for adding a pci backend type for xen and other
hostdev common library stuff
* Other fixes according to Daniel's comments.
v5 is here:
http://www.redhat.com/archives/libvir-list/2013-September/msg00745.html
Chunyan Liu (5):
Add a hostdev PCI backend type
Add hostdev passthrough common library
Add pci passthrough to libxl driver
Change qemu driver to use hostdev common library
Change lxc driver to use hostdev common library
docs/schemas/domaincommon.rng | 1 +
po/POTFILES.in | 3 +-
src/Makefile.am | 3 +-
src/conf/domain_conf.c | 3 +-
src/conf/domain_conf.h | 1 +
src/libvirt_private.syms | 20 +
src/libxl/libxl_conf.c | 63 ++
src/libxl/libxl_conf.h | 4 +
src/libxl/libxl_domain.c | 9 +
src/libxl/libxl_driver.c | 448 +++++++++++-
src/lxc/lxc_conf.h | 4 -
src/lxc/lxc_driver.c | 47 +-
src/lxc/lxc_hostdev.c | 413 ----------
src/lxc/lxc_hostdev.h | 43 --
src/lxc/lxc_process.c | 24 +-
src/qemu/qemu_command.c | 4 +-
src/qemu/qemu_conf.h | 9 +-
src/qemu/qemu_domain.c | 22 +
src/qemu/qemu_driver.c | 77 +--
src/qemu/qemu_hostdev.c | 1453 -----------------------------------
src/qemu/qemu_hostdev.h | 74 --
src/qemu/qemu_hotplug.c | 133 ++--
src/qemu/qemu_process.c | 40 +-
src/util/virhostdev.c | 1671 +++++++++++++++++++++++++++++++++++++++++
src/util/virhostdev.h | 129 ++++
src/util/virpci.c | 30 +-
src/util/virpci.h | 9 +-
src/util/virscsi.c | 28 +-
src/util/virscsi.h | 8 +-
src/util/virusb.c | 29 +-
src/util/virusb.h | 8 +-
31 files changed, 2607 insertions(+), 2203 deletions(-)
delete mode 100644 src/lxc/lxc_hostdev.c
delete mode 100644 src/lxc/lxc_hostdev.h
delete mode 100644 src/qemu/qemu_hostdev.c
delete mode 100644 src/qemu/qemu_hostdev.h
create mode 100644 src/util/virhostdev.c
create mode 100644 src/util/virhostdev.h