Hello ChunYan,
I saw a few minor problems in some patches that made me rebase quite a
lot of other patches in your serie, but otherwise it really looks good
to me.
Here is a summary of the changes I made or questions I have:
* Patch 2: Fixed a few remaining changes that broke the build.
Just remember that having the tree building after each commit
helps a lot when one later needs to bisect.
* Patch 4: when is the manager freed?
* Patch 5 & 6: remove the added ATTRIBUTE_UNUSED
* Patch 9: added { } around if block to match else style.
* Patch 10: remove added ATTRIBUTE_UNUSED
* Patch 11: fixed indent function rename
* Patch 42: Fix comment about qemuPrepareHostdevPCIDevices in
earlier patch
* Patch 47: remove added ATTRIBUTE_UNUSED
* Patch 49: Fixed the version in libxl_driver.c as 1.2.2 is out
The whole updated patch series is sitting here for those wanting to see
the changes applied:
https://github.com/cbosdo/libvirt/commits/hostdev-passthrough
Of course, I'ld love another pair of sharper eyes to look at the patch
series. I'm not an expert on the hostdev topic ;)
Kind regards
--
Cedric
> --
On Sat, 2014-03-01 at 14:28 +0800, Chunyan Liu 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.
>
> Patches 1~6 are to switch existing qemu and lxc driver to use common library
> lists, so that to maintain a global state of every host device.
>
> Patches 7~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 v12:
> * split "add hostdev passthrough common library" patch into small patches
> for easier review.
> * fix v12 comments
> * rebase to libxl changes
>
>
> Chunyan Liu (49):
> add 'driver' info to used_by
> qemu: reuse hostdev interfaces to avoid duplicate
> qemu: remove functions now used internally only from qemu_hostdev.h
> add virhostdev files to maintain global state of host devices
> 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
> qemuPrepareUSBDevices: code adjustment for extracting general code
> 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 virHostdevDomainReAttachHostUsbDevices 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 +
> po/POTFILES.in | 1 +
> src/Makefile.am | 1 +
> src/conf/domain_conf.c | 3 +-
> src/conf/domain_conf.h | 1 +
> src/libvirt_private.syms | 19 +
> src/libxl/libxl_conf.c | 63 ++
> src/libxl/libxl_conf.h | 4 +
> src/libxl/libxl_domain.c | 9 +
> src/libxl/libxl_driver.c | 447 +++++++++++-
> src/lxc/lxc_conf.h | 4 -
> src/lxc/lxc_driver.c | 17 +-
> src/lxc/lxc_hostdev.c | 315 +--------
> src/qemu/qemu_command.c | 3 +-
> src/qemu/qemu_conf.h | 10 +-
> src/qemu/qemu_driver.c | 88 +--
> src/qemu/qemu_hostdev.c | 1220 ++-----------------------------
> src/qemu/qemu_hostdev.h | 27 +-
> src/qemu/qemu_hotplug.c | 77 +--
> src/qemu/qemu_process.c | 8 +-
> src/util/virhostdev.c | 1621 +++++++++++++++++++++++++++++++++++++++++
> src/util/virhostdev.h | 140 ++++
> src/util/virpci.c | 31 +-
> src/util/virpci.h | 9 +-
> src/util/virscsi.c | 32 +-
> src/util/virscsi.h | 7 +-
> src/util/virusb.c | 31 +-
> src/util/virusb.h | 8 +-
> tests/Makefile.am | 5 +
> tests/virhostdevtest.c | 507 +++++++++++++
> tests/virscsitest.c | 6 +-
> 32 files changed, 3081 insertions(+), 1635 deletions(-)
> create mode 100644 src/util/virhostdev.c
> create mode 100644 src/util/virhostdev.h
> create mode 100644 tests/virhostdevtest.c
>
> libvir-list mailing list
> libvir-list@redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>