[libvirt] [PATCH v13 00/49] write separate module for hostdev passthrough

Chunyan Liu cyliu at suse.com
Wed Mar 5 06:15:51 UTC 2014


2014-03-04 0:57 GMT+08:00 Cedric Bosdonnat <cbosdonnat at suse.com>:

> 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?
>
It's hard to find a specified code point to free the manager, since we
don't know is there anyone else still using it.


>     * 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 at redhat.com
> > https://www.redhat.com/mailman/listinfo/libvir-list
> >
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140305/b35ac606/attachment-0001.htm>


More information about the libvir-list mailing list