[libvirt] [PATCH v14 00/49] write separate module for hostdev passthrough
Chun Yan Liu
cyliu at suse.com
Fri Mar 7 11:05:58 UTC 2014
The whole patch series could be get from here:
https://github.com/chunyanliu/libvirt/commits/hostdev_passthrough
-Chunyan
>>> On 3/7/2014 at 06:52 PM, in message
<1394189596-22994-1-git-send-email-cyliu at suse.com>, Chunyan Liu
<cyliu at suse.com> wrote:
> 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.
>
> Patch 1: fix memory leak in virscsi.c
> Patch 2: improve virHostdevManager to use virOject wrapper and keep
> reference
>
> Patches 3~7: switch existing qemu and lxc driver to use virHostdevManager's
> lists, so that to maintain a global state of every host device.
>
> Patches 8~45 are to extract general code from qemu_hostdev.c piece by piece,
> make them reusable common APIs.
>
> Patches 46: unit test for the virhostdev common library
> Patches 47: add a hostdev backend type for xen
> Patches 48: add pci passthrough to libxl driver based on the common library
> Patches 49: change lxc to use common library APIs
>
> ---
> changes to v13:
> * change virHostdevManager, use virObject and keep reference, solve 'free'
> problem
> * add .hostdevMgr to qemu/lxc/libxl driver, get virHostdevManager in
> StateInitialize for once and keep reference, instead of getting it every
> time virHostdevManager is used.
> * fix v13 3/49 "qemu-reuse-hostdev-interfaces-to-avoid-duplicate.patch":
> update qemuPrepareHostUSBDevices parameters to specify hostdevs and
> nhostdevs, so that could be reused in qemu_hotplug.
> * rebase left patches
>
> Chunyan Liu (49):
> virscsi: fix memory leak
> virhostdev: use virObject to virHostdevManager to keep reference
> update qemuPrepareHostUSBDevices parameters to keep consistency
> qemu: reuse hostdev interfaces to avoid duplicate
> qemu: remove functions used internally only from qemu_hostdev.h
> qemu: use general virhostdev lists instead of its own
> lxc: use general virhostdev lists instead of its own
> qemu_hostdev: move cfg->relaxedACS as a flag
> qemu_hostdev: move ColdBoot as a flag
> qemu_hostdev: move netconfig file location to virhostdev stateDir
> extract general code from qemuPrepareHostdevPCIDevices
> rename qemu*NetConfigRestore/Replace to
> virHostdevNetConfigRestore/Replace
> rename qemuGet*PciHostDeviceList to virHostdevGet*PciHostDeviceList
> pass driver name as a parameter to virHostdevPrepareHostdevPCIDevices
> extract general code from qemuDomainReAttachHostdevDevices
> pass driver name as a parameter to virHostdevReAttachPCIDevices
> rename qemuReAttachPciDevice to virHostdevReAttachPciDevice
> move virHostdevPrepare(ReAttach)PCIDevices to virhostdev.c
> extract general code from qemuUpdateActivePciHostdevs
> extract general code from qemuUpdateActiveUsbHostdevs
> extract general code from qemuUpdateActiveScsiHostdevs
> pass driver_name as parameter of virHostdevUpdate*Hostdevs functions
> move virHostdevUpdate* functions to virhostdev.c
> extract general code from qemuPrepareHostUSBDevices
> rename qemu*USBDevices to virHostdev*USBDevices
> pass driver name to virHostdevPrepareUSBDevices
> move virHostdevPrepareHostUSBDevices to virhostdev.c
> extract general code from qemuPrepareHostSCSIDevices
> pass driver name as parameter to virHostdevPrepareSCSIDevices
> move virHostdevPrepareHostSCSIDevices to virhostdev.c
> extract general code from qemuDomainReAttachHostUsbDevices
> pass driver name as paramter to virHostdevReAttachUsbHostdevs
> move virHostdevReAttachUsbHostdevs to virhostdev.c
> extract general code from qemuDomainReAttachHostScsiDevices
> pass driver name as parameter to virHostdevReAttachScciHostdevs
> move virHostdevReAttachHostScsiDevices to virhostdev.c
> extract general code of NodeDeviceDetach
> extract general code of NodeDeviceReAttach
> extract general code of NodeDeviceReset
> move virHostdevNodeDevice* to virhostdev.c
> improve parameter name to let it more meaningful
> rename some function names to keep consistency
> improve virHostdevUpdate* parameters to make it more widely used
> add 3 wrapper functions for prepare/reattach/update domain hostdevs
> add parameter checks to common interfaces
> add unit test for new virhostdev common library
> change lxc_hostdev.c to use virhostdev common library APIs
> add hostdev pci backend type for xen
> add pci passthrough to libxl driver
>
> .gitignore | 1 +
> docs/schemas/domaincommon.rng | 1 +
> 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 | 7 +-
> src/libxl/libxl_domain.c | 9 +
> src/libxl/libxl_driver.c | 454 +++++++++++-
> src/lxc/lxc_conf.h | 5 +-
> src/lxc/lxc_driver.c | 12 +-
> src/lxc/lxc_hostdev.c | 307 +-------
> src/qemu/qemu_command.c | 3 +-
> src/qemu/qemu_conf.h | 9 +-
> src/qemu/qemu_driver.c | 76 +-
> src/qemu/qemu_hostdev.c | 1203 ++-----------------------------
> src/qemu/qemu_hostdev.h | 29 +-
> src/qemu/qemu_hotplug.c | 78 +-
> src/qemu/qemu_process.c | 8 +-
> src/util/virhostdev.c | 1565
> ++++++++++++++++++++++++++++++++++++++++-
> src/util/virhostdev.h | 96 +++
> src/util/virscsi.c | 13 +-
> tests/Makefile.am | 5 +
> tests/virhostdevtest.c | 507 +++++++++++++
> 24 files changed, 2832 insertions(+), 1638 deletions(-)
> create mode 100644 tests/virhostdevtest.c
More information about the libvir-list
mailing list