[libvirt] [RESEND][PATCHv5 0/4] write separate module for hostdev passthrough

Chunyan Liu cyliu at suse.com
Thu Sep 12 03:25:06 UTC 2013


[rebased to latest libvirt code for applying and reviewing the patches]

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 v4:
  * change the way checking hypervisor driver name to decide whether use pciback
    or pci-stub as stub driver, instead, using driver callback to handle that.
  * remove get active/inactive list APIs from hostdev common library since
    currently no code uses them.
  * add nodedev-detach/reattach/reset to libxl driver
  * other fixes to Daniel and Jim's comments
  v4 is here:
  https://www.redhat.com/archives/libvir-list/2013-August/msg00806.html

Changes to v3:
  * fix Jim's comments
  v3 is here:
  https://www.redhat.com/archives/libvir-list/2013-August/msg00019.html

Changes to v2:
  * add patches for qemu driver and lxc driver, use common library APIs instead
    of their own hostdev APIs.
  * add APIs for nodedev-detach and nodedev-reattach calling.
  * rename functions to use unified prefix 'virHostdev'
  * use VIR_ONCE_GLOBAL_INIT() as others instead of previous Init and Cleanup.
  * use VIR_STRDUP instead of strdup
  * rebase to latest code
  v2 is here:
  https://www.redhat.com/archives/libvir-list/2013-June/msg00263.html

Chunyan Liu (4):
  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      |   15 +
 src/libxl/libxl_conf.c        |   63 ++
 src/libxl/libxl_conf.h        |    4 +
 src/libxl/libxl_domain.c      |    9 +
 src/libxl/libxl_driver.c      |  443 ++++++++++++++-
 src/lxc/lxc_conf.h            |    4 -
 src/lxc/lxc_driver.c          |   45 +-
 src/lxc/lxc_hostdev.c         |  413 -------------
 src/lxc/lxc_hostdev.h         |   43 --
 src/lxc/lxc_process.c         |   21 +-
 src/qemu/qemu_command.c       |    1 -
 src/qemu/qemu_conf.h          |    9 +-
 src/qemu/qemu_domain.c        |    9 +
 src/qemu/qemu_driver.c        |   72 +--
 src/qemu/qemu_hostdev.c       | 1289 ---------------------------------------
 src/qemu/qemu_hostdev.h       |   72 ---
 src/qemu/qemu_hotplug.c       |  126 ++---
 src/qemu/qemu_process.c       |   34 +-
 src/util/virhostdev.c         | 1335 +++++++++++++++++++++++++++++++++++++++++
 src/util/virhostdev.h         |  104 ++++
 src/util/virpci.c             |   28 +-
 src/util/virpci.h             |    9 +-
 src/util/virscsi.c            |   26 +-
 src/util/virscsi.h            |    8 +-
 src/util/virusb.c             |   27 +-
 src/util/virusb.h             |    8 +-
 31 files changed, 2195 insertions(+), 2033 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




More information about the libvir-list mailing list