1. 20 6月, 2017 1 次提交
  2. 19 6月, 2017 1 次提交
  3. 16 6月, 2017 1 次提交
  4. 14 6月, 2017 1 次提交
  5. 13 6月, 2017 3 次提交
  6. 12 6月, 2017 1 次提交
  7. 09 6月, 2017 1 次提交
  8. 08 6月, 2017 3 次提交
  9. 26 5月, 2017 1 次提交
  10. 23 5月, 2017 1 次提交
    • L
      Revert "qemu: propagate bridge MTU into qemu "host_mtu" option" · 77780a29
      Laine Stump 提交于
      This reverts commit 2841e675.
      
      It turns out that adding the host_mtu field to the PCI capabilities in
      the guest bumps the length of PCI capabilities beyond the 32 byte
      boundary, so the virtio-net device gets 64 bytes of ioport space
      instead of 32, which offsets the address of all the other following
      devices. Migration doesn't work very well when the location and length
      of PCI capabilities of devices is changed between source and
      destination.
      
      This means that we need to make sure that the absence/presence of
      host_mtu on the qemu commandline always matches between source and
      destination, which means that we need to make setting of host_mtu an
      opt-in thing (it can't happen automatically when the bridge being used
      has a non-default MTU, which is what commit 2841e675 implemented).
      
      I do want to re-implement this feature with an <mtu auto='on'/>
      setting, but probably won't backport that to any stable branches, so
      I'm first reverting the original commit, and that revert can be pushed
      to the few releases that have been made since the original (3.1.0 -
      3.3.0)
      
      Resolves: https://bugzilla.redhat.com/1449346
      77780a29
  11. 16 5月, 2017 1 次提交
  12. 15 5月, 2017 3 次提交
  13. 28 4月, 2017 2 次提交
    • P
    • J
      qemu: Add support for guest CPU cache · df13c0b4
      Jiri Denemark 提交于
      This patch maps /domain/cpu/cache element into -cpu parameters:
      
      - <cache mode='passthrough'/> is translated to host-cache-info=on
      - <cache level='3' mode='emulate'/> is transformed into l3-cache=on
      - <cache mode='disable'/> is turned in host-cache-info=off,l3-cache=off
      
      Any other <cache> element is forbidden.
      
      The tricky part is detecting whether QEMU supports the CPU properties.
      
      The 'host-cache-info' property is introduced in v2.4.0-1389-ge265e3e480,
      earlier QEMU releases enabled host-cache-info by default and had no way
      to disable it. If the property is present, it defaults to 'off' for any
      QEMU until at least 2.9.0.
      
      The 'l3-cache' property was introduced later by v2.7.0-200-g14c985cffa.
      Earlier versions worked as if l3-cache=off was passed. For any QEMU
      until at least 2.9.0 l3-cache is 'off' by default.
      
      QEMU 2.9.0 was the first release which supports probing both properties
      by running device-list-properties with typename=host-x86_64-cpu. Older
      QEMU releases did not support device-list-properties command for CPU
      devices. Thus we can't really rely on probing them and we can just use
      query-cpu-model-expansion QMP command as a witness.
      
      Because the cache property probing is only reliable for QEMU >= 2.9.0
      when both are already supported for quite a few releases, we let QEMU
      report an error if a specific cache mode is explicitly requested. The
      other mode (or both if a user requested CPU cache to be disabled) is
      explicitly turned off for QEMU >= 2.9.0 to avoid any surprises in case
      the QEMU defaults change. Any older QEMU already turns them off so not
      doing so explicitly does not make any harm.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      df13c0b4
  14. 24 4月, 2017 1 次提交
  15. 19 4月, 2017 1 次提交
  16. 18 4月, 2017 1 次提交
    • P
      qemu: refactor qemuDomainMachine* functions · ac97658d
      Pavel Hrdina 提交于
      Introduce new wrapper functions without *Machine* in the function
      name that take the whole virDomainDef structure as argument and
      call the existing functions with *Machine* in the function name.
      
      Change the arguments of existing functions to *machine* and *arch*
      because they don't need the whole virDomainDef structure and they
      could be used in places where we don't have virDomainDef.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      ac97658d
  17. 13 4月, 2017 1 次提交
  18. 07 4月, 2017 3 次提交
  19. 04 4月, 2017 1 次提交
  20. 03 4月, 2017 1 次提交
    • A
      qemu: Enforce ACPI, UEFI requirements · 396ca36c
      Andrea Bolognani 提交于
      Depending on the architecture, requirements for ACPI and UEFI can
      be different; more specifically, while on x86 UEFI requires ACPI,
      on aarch64 it's the other way around.
      
      Enforce these requirements when validating the domain, and make
      the error message more accurate by mentioning that they're not
      necessarily applicable to all architectures.
      
      Several aarch64 test cases had to be tweaked because they would
      have failed the validation step otherwise.
      396ca36c
  21. 28 3月, 2017 2 次提交
    • A
      qemu: Remove qemuDomainRequiresMemLock() · 1f7661af
      Andrea Bolognani 提交于
      Instead of having a separate function, we can simply return
      zero from the existing qemuDomainGetMemLockLimitBytes() to
      signal the caller that the memory locking limit doesn't need
      to be set for the guest.
      
      Having a single function instead of two makes it less likely
      that we will use the wrong value, which is exactly what
      happened when we started applying the limit that was meant
      for VFIO-using guests to <memoryBacking><locked>-using
      guests.
      1f7661af
    • J
      qemu: Add support for setting TSC frequency · 7373c4e4
      Jiri Denemark 提交于
      QEMU allows for TSC frequency to be explicitly set to enable migration
      with invtsc (migration fails if the destination QEMU cannot set the
      exact same frequency used when starting the domain on the source host).
      
      Libvirt already supports setting the TSC frequency in the XML using
      
          <clock>
            <timer name='tsc' frequency='1234567890'/>
          </clock>
      
      which will be transformed into
      
          -cpu Model,tsc-frequency=1234567890
      
      QEMU command line.
      Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      7373c4e4
  22. 27 3月, 2017 1 次提交
  23. 17 3月, 2017 4 次提交
  24. 15 3月, 2017 4 次提交
    • M
      qemu: Introduce label-size for NVDIMMs · e433546b
      Michal Privoznik 提交于
      For NVDIMM devices it is optionally possible to specify the size
      of internal storage for namespaces. Namespaces are a feature that
      allows users to partition the NVDIMM for different uses.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      e433546b
    • M
      04dc668a
    • M
      qemu: Implement NVDIMM · 1bc17319
      Michal Privoznik 提交于
      So, majority of the code is just ready as-is. Well, with one
      slight change: differentiate between dimm and nvdimm in places
      like device alias generation, generating the command line and so
      on.
      
      Speaking of the command line, we also need to append 'nvdimm=on'
      to the '-machine' argument so that the nvdimm feature is
      advertised in the ACPI tables properly.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      1bc17319
    • M
      Introduce NVDIMM memory model · b4e8a49f
      Michal Privoznik 提交于
      NVDIMM is new type of memory introduced into QEMU 2.6. The idea
      is that we have a Non-Volatile memory module that keeps the data
      persistent across domain reboots.
      
      At the domain XML level, we already have some representation of
      'dimm' modules. Long story short, NVDIMM will utilize the
      existing <memory/> element that lives under <devices/> by adding
      a new attribute 'nvdimm' to the existing @model and introduce a
      new <path/> element for <source/> while reusing other fields. The
      resulting XML would appear as:
      
          <memory model='nvdimm'>
            <source>
              <path>/tmp/nvdimm</path>
            </source>
            <target>
              <size unit='KiB'>523264</size>
              <node>0</node>
            </target>
            <address type='dimm' slot='0'/>
          </memory>
      
      So far, this is just a XML parser/formatter extension. QEMU
      driver implementation is in the next commit.
      
      For more info on NVDIMM visit the following web page:
      
          http://pmem.io/Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      b4e8a49f