1. 24 4月, 2015 2 次提交
  2. 23 4月, 2015 1 次提交
  3. 22 4月, 2015 4 次提交
    • P
      qemu: migration: Refactor hostdev validation in migration check · bd579773
      Peter Krempa 提交于
      The hostdev check can error out right away.
      bd579773
    • M
      processNicRxFilterChangedEvent: Take appropriate actions for NET_TYPE_NETWORK too · 74acc4ca
      Michal Privoznik 提交于
      Because packets going through the egress from a bridge (where our
      bandwidth limiting takes place) have no information about which
      interface they came from, the QoS rules that we create instead
      use the source MAC address of the packets to make their decisions
      about which QDisc the packet should be in.
      
      One flaw in this is that when a guest changed the MAC address it
      used, packets from the guest would no longer be put into the
      correct QDisc, but would instead be put in an "unprivileged"
      class, resulting in the bandwidth "floor" (minimum guaranteed)
      being no longer honored.
      
      Now that libvirt has infrastructure to capture and respond to
      RX_FILTER_CHANGE events from qemu (sent whenever a guest
      interface modifies its MAC address, among other things), we can
      notice when a guest MAC address changes, and update the QoS rules
      accordingly, so that bandwidth floor is honored even after a
      guest MAC address change.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      74acc4ca
    • L
      qemu: Fix issues with maxMemory in qemuDomainSetMemoryFlags() · d1743941
      Luyao Huang 提交于
      qemuDomainSetMemoryFlags() would allow to set the initial memory greater
      than the <maxMemory> field. While the configuration would not work as
      memory hotplug requires NUMA to be enabled and the
      qemuDomainSetMemoryFlags() API does not work on NUMA guests this just
      fixes a corner case.
      
      The fix is still worth though as it allows to induce an invalid
      configuration and make the VM vanish on libvirt restart.
      
      Additionally this tweaks error message to be more accurate.
      Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
      d1743941
    • L
      qemu: set macvtap physdevs online when macvtap is set online · 38172ed8
      Laine Stump 提交于
      A further fix for:
      
        https://bugzilla.redhat.com/show_bug.cgi?id=1113474
      
      Since there is no possibility that any type of macvtap will work if
      the parent physdev it's attached to is offline, we should bring the
      physdev online at the same time as the macvtap. When taking the
      macvtap offline, it's also necessary to take the physdev offline for
      macvtap passthrough mode (because the physdev has the same MAC address
      as the macvtap device, so could potentially cause problems with
      misdirected packets during migration, as outlined in commits 829770
      and 879c13). We can't set the physdev offline for other macvtap modes
      1) because there may be other macvtap devices attached to the same
      physdev (and/or the host itself may be using the device) in the other
      modes whereas passthrough mode is exclusive to one macvtap at a time,
      and 2) there's no practical reason to do so anyway.
      38172ed8
  4. 21 4月, 2015 6 次提交
  5. 17 4月, 2015 2 次提交
    • M
      domcaps: Check for architecture more wisely · 0af9325e
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1209948
      
      So we have this bug. The virConnectGetDomainCapabilities() API
      performs a couple of checks before it produces any result. One of
      the checks is if the architecture requested by user can be run by
      the binary (again user provided). However, the check is pretty
      dumb. It merely compares if the default binary architecture
      matches the one provided by user. However, a qemu binary can run
      multiple architectures. For instance: qemu-system-ppc64 can run:
      ppc, ppcle, ppc64, ppc64le and ppcemb. The default is ppc64, so
      if user requested something else, like ppc64le, the check would
      have failed without obvious reason.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      0af9325e
    • Z
      qemuDomainShutdownFlags: Set fakeReboot more frequently · 8be502fd
      zhang bo 提交于
      When a qemu domain is to be rebooted, from outside, at libvirt
      level it looks like regular shutdown. To really restart the
      domain, libvirt needs to issue reset command on the monitor once
      SHUTDOWN event appeared. So, in order to differentiate bare
      shutdown and reboot libvirt uses a variable within domain private
      data. It's called fakeReboot. When the reboot API is called, the
      variable is set, but when the shutdown API is called it must be
      cleared out. But it was not for every possible case. So if user
      called virDomainReboot(), and there was no ACPI daemon running
      inside the guest (so guest didn't initiated shutdown sequence)
      and then virDomainShutdown(mode=agent) was called bad thing
      happened. We remembered the fakeReboot and instead of shutting
      the domain down, we just rebooted it.
      Signed-off-by: NZhang Bo <oscar.zhangbo@huawei.com>
      Signed-off-by: NWang Yufei <james.wangyufei@huawei.com>
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      8be502fd
  6. 16 4月, 2015 2 次提交
    • P
      qemu: monitor: Refactor and fix monitor checking · c4410852
      Peter Krempa 提交于
      Among all the monitor APIs some where checking if mon is NULL and some
      were not. Since it's possible to have mon equal to NULL in case a second
      call is attempted once entered the monitor. This requires that every
      single API checks for the monitor.
      
      This patch adds a macro that helps checking the state of the monitor and
      either refactors existing checking code to use the macro or adds it in
      case it was missing.
      c4410852
    • P
      qemu: bulk stats: Ignore errors from missing/inaccessible disks · 25aa7035
      Peter Krempa 提交于
      Rather than erroring out make the best attempt to retrieve other data if
      disks are inaccessible or missing. The failure will still be logged
      though.
      
      Since the bulk stats API is called on multiple domains an error like
      this makes the API unusable. This regression was introduced by commit
      596a1371
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1209394
      25aa7035
  7. 15 4月, 2015 7 次提交
  8. 14 4月, 2015 16 次提交