1. 14 11月, 2019 3 次提交
    • D
      qemu_hotplug.c: user-friendlier setvcpus timeout error message · f46eb511
      Daniel Henrique Barboza 提交于
      The current 'setvcpus' timeout message requires a deeper
      understanding of QEMU/Libvirt internals to proper react to it.
      One who knows how setvcpus unplug work (it is an asynchronous
      operation between QEMU and guest that Libvirt can't know for
      sure if it failed, unless an explicit error happened during the
      timeout period) will read the message and not assume a failed
      operation. But the regular user, most often than not, will read
      it and believe that the unplug operation failed.
      
      This leads to situations where the user isn't exactly relieved
      when accessing the guest and seeing that the unplug operation
      worked. Instead, the user feel mislead by the timeout message
      setvcpus threw.
      
      Changing the timeout message to let the user know that the
      unplug status is not known, and manual inspection in the guest
      is required, is not a silver bullet. But it gives a more
      realistic expectation of what happened, as best as we can tell
      from Libvirt side anyways.
      Reviewed-by: NCole Robinson <crobinso@redhat.com>
      Signed-off-by: NDaniel Henrique Barboza <danielhb413@gmail.com>
      f46eb511
    • D
      qemu: Remove qemu_hotplugpriv.h and qemuDomainRemoveDeviceWaitTime · 2fe78a83
      Daniel Henrique Barboza 提交于
      qemu_hotplugpriv.h is a header file created to share a global variable
      called 'qemuDomainRemoveDeviceWaitTime', declared in qemu_hotplug.c,
      to other files that would want to change the timeout value
      (currently, only tests/qemuhotplugtest.c).
      
      Previous patch deprecated the variable, using qemu_driver->unplugTimeout
      to set the timeout instead. This means that the header file is now
      unused, and can be safely discarded.
      Reviewed-by: NCole Robinson <crobinso@redhat.com>
      Signed-off-by: NDaniel Henrique Barboza <danielhb413@gmail.com>
      2fe78a83
    • D
      qemu_hotplug.c: adding qemuDomainGetUnplugTimeout · e03e27ee
      Daniel Henrique Barboza 提交于
      For some architectures and setups, device removal can take
      longer than the default 5 seconds. This results in commands
      such as 'virsh setvcpus' to fire timeout messages even if
      the operation were successful in the guest, confusing the
      user.
      
      This patch sets a new 10 seconds unplug timeout for PPC64
      guests. All other archs will keep the default 5 seconds
      timeout.
      
      Instead of putting 'if PPC64' conditionals inside qemu_hotplug.c
      to set the new timeout value, a new function called
      qemuDomainGetUnplugTimeout was added. The timeout value is then
      retrieved when needed, by passing the correspondent DomainDef
      object. This approach allows for different guest architectures
      to have distint unplug timeout intervals, regardless of the
      host architecture. This design also makes it easier to
      modify/enhance the unplug timeout logic in the future
      (allow for special timeouts for TCG domains, for example).
      
      A new mock file was created to work with qemuhotplugtest.c,
      given that the test timeout is significantly shorter than
      the actual timeout value in qemu_hotplug.c.
      
      The now unused 'qemuDomainRemoveDeviceWaitTime' global can't
      be simply erased from qemu_hotplug.c though. Next patch will
      remove it properly.
      Reviewed-by: NCole Robinson <crobinso@redhat.com>
      Suggested-by: NCole Robinson <crobinso@redhat.com>
      Signed-off-by: NDaniel Henrique Barboza <danielhb413@gmail.com>
      e03e27ee
  2. 12 11月, 2019 2 次提交
  3. 08 11月, 2019 1 次提交
    • L
      qemu: avoid double reservation of PCI address for interface type='hostdev' · 47a7b8a9
      Laine Stump 提交于
      Commit 01ca4010 (libvirt v5.1.0) moved address reservation for
      hotplugged interface devices up to an earlier point in
      qemuDomainAttachNetDevice(), because that function calls
      qemuDomainSupportsNicdev() (in the case of
      VIR_DOMAIN_NET_TYPE_VHOSTUSER), and qemuDomainSupportsNicdev() needs
      to know the address type (for ARM machinetypes) and returns incorrect
      results when the address type is "none".
      
      This bugfix unfortunately caused a regression, because it also made PCI
      address reservation happen before we noticed that the device was a
      *hostdev* interface. Those interfaces are hotplugged by just calling
      out to qemuDomainAttachHostdevDevice() - that function would then also
      attempt to reserve the *same PCI address* that had just been reserved
      in qemuDomainAttachNetDevice().
      
      The solution is to move the bit of code that short-circuits out to
      virDomainHostdevAttach() up *even earlier* so that no PCI address has
      been allocated by the time it's called.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1744523Signed-off-by: NLaine Stump <laine@redhat.com>
      Reviewed-by: NAndrea Bolognani <abologna@redhat.com>
      47a7b8a9
  4. 21 10月, 2019 4 次提交
  5. 16 10月, 2019 4 次提交
  6. 15 10月, 2019 2 次提交
  7. 24 9月, 2019 1 次提交
  8. 19 9月, 2019 1 次提交
  9. 18 9月, 2019 1 次提交
  10. 16 9月, 2019 1 次提交
  11. 13 9月, 2019 1 次提交
  12. 09 9月, 2019 3 次提交
  13. 06 9月, 2019 6 次提交
  14. 23 8月, 2019 1 次提交
  15. 06 8月, 2019 1 次提交
  16. 18 7月, 2019 2 次提交
  17. 26 6月, 2019 6 次提交