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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list