• D
    Rewrite way QEMU PCI addresses are allocated · 9258ec0a
    Daniel P. Berrange 提交于
    The current QEMU code allocates PCI addresses incrementally starting
    at 4. This is not satisfactory because the user may have given some
    addresses in their XML config, which need to be skipped over when
    allocating addresses to remaining devices.
    
    It is thus neccessary to maintain a list of already allocated PCI
    addresses and then only allocate ones that remain unused. This is
    also required for domain device hotplug to work properly later.
    
    * src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Add APIs for creating
      list of existing PCI addresses, and allocating new addresses.
      Refactor address assignment to use this code
    * src/qemu/qemu_driver.c: Pull PCI address assignment up into the
      qemuStartVMDaemon() method, as a prelude to moving it into the
      'define' method. Update list of allocated addresses when connecting
      to a running VM at daemon startup.
    * tests/qemuxml2argvtest.c, tests/qemuargv2xmltest.c,
      tests/qemuxml2xmltest.c: Remove USB product test since all
      passthrough is done based on address
    * tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-product.args,
      tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-product.xml: Kil
      unused data files
    9258ec0a
qemu_driver.c 263.7 KB