1. 30 6月, 2015 1 次提交
  2. 26 6月, 2015 2 次提交
    • M
      qemuBuildMemoryBackendStr: Honour passed @pagesize · 70d75ffc
      Michal Privoznik 提交于
      So far the argument has not much meaning and was practically ignored.
      This is not good since when doing memory hotplug, the size of desired
      hugepage backing is passed in that argument. Taking closer look at the
      tests I'm fixing reveals the bug. For instance, while the following is
      in the test:
      
          <memory model='dimm'>
            <source>
              <nodemask>1-3</nodemask>
              <pagesize unit='KiB'>4096</pagesize>
            </source>
            <target>
              <size unit='KiB'>524287</size>
              <node>0</node>
            </target>
            <address type='dimm' slot='0' base='0x100000000'/>
          </memory>
      
      the generated commandline corresponding to this XML was:
      
          -object memory-backend-ram,id=memdimm0,size=536870912,\
          host-nodes=1-3,policy=bind
      
      Have you noticed? Yes, memory-backend-ram! Nothing can be further away
      from the right answer. The hugepage backing is requested in the XML
      and we happily ignore it. This is just not right. It's
      memory-backend-file which should have been used:
      
          -object memory-backend-file,id=memdimm0,prealloc=yes,\
          mem-path=/dev/hugepages4M/libvirt/qemu,size=536870912,\
          host-nodes=1-3,policy=bind
      
      The problem is, that @pagesize passed to qemuBuildMemoryBackendStr
      (where this part of commandline is built) was ignored. The hugepage to
      back memory was searched only and only by NUMA nodes pinning. This
      works only for regular guest NUMA nodes.
      
      Then, I'm changing the hugepages size in the test XMLs too. This is
      simply because in the test suite we create dummy mount points just for
      2M and 1G hugepages. And in the test 4M was requested. I'm sticking to
      2M, but 1G should just work too.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      70d75ffc
    • M
      qemuBuildMemoryBackendStr: Fix hugepages lookup process · f8e9deb1
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1196644
      
      This function constructs the backend (host facing) part of the
      memory device.  At the beginning, the configured hugepages are
      searched to find the best match for given guest NUMA node.
      Configured hugepages can have a @nodeset attribute to specify on
      which guest NUMA nodes should be the hugepages backing used.
      There is, however, one 'corner case'. Users may just tell 'use
      hugepages to back all the nodes'. In other words:
      
        <memoryBacking>
          <hugepages/>
        </memoryBacking>
      
        <cpu>
          <numa>
            <cell id='0' cpus='0-1' memory='1024000' unit='KiB'/>
          </numa>
        </cpu>
      
      Our code fails in this case. Well, since there's no @nodeset (nor
      any <page/> child element to <hugepages/>) we fail to lookup the
      default hugepage size to use.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      f8e9deb1
  3. 24 6月, 2015 2 次提交
  4. 18 6月, 2015 2 次提交
  5. 15 6月, 2015 1 次提交
  6. 11 6月, 2015 1 次提交
  7. 09 6月, 2015 1 次提交
  8. 01 6月, 2015 2 次提交
  9. 21 5月, 2015 1 次提交
  10. 18 5月, 2015 1 次提交
  11. 16 5月, 2015 1 次提交
    • L
      qemu: remove test for allowing ide controller in s390, rename usb tests · 548ba430
      Laine Stump 提交于
      Back in 2013, commit 877bc089 added in some tests that made sure no
      error was generated on a domain definition that had an automatically
      added usb controller if that domain didn't have a PCI bus to attach
      the usb controller to. This was done because, at that time, libvirt
      was automatically adding a usb controller to *any* domain definition
      that didn't have one.  Along with permitting the controller, two
      s390-specific tests were added to ensure this behavior was maintained
      - one with <controller type='usb' model='none'/> and another (called
      "s390-piix-controllers") that had both usb and ide controllers, but
      nothing attached to them.
      
      Then in February of this year, commit 09ab9dcc eliminated the annoying
      auto-adding of a usb device for s390 and s390x machines, stating:
      
       "Since s390 does not support usb the default creation of a usb
        controller for a domain should not occur."
      
      Although, as verified here, the s390 doesn't support usb, and usb
      controllers aren't currently added to s390 domain definitions
      automatically, there are likely still some domain definitions in the
      wild that have a usb controller (which was added *by libvirt*, not by
      the user), so we will keep the tests verifying that behavior for
      now. But this patch changes the names of the tests to reflect that
      they don't actually contain a valid s390 config; this way future
      developers won't propagate the incorrect idea that an s390 virtual
      machine can have a USB (or IDE) bus.
      
      In the case of the IDE controller, though, libvirt has never
      automatically added an IDE controller unless a user added an IDE disk
      (which itself would have caused an error), and we specifically *do*
      want to begin generating an error when someone tries to add an IDE
      controller to a domain that can't support one. For that reason, while
      renaming the sz390-piix-controllers patch, this patch removes the
      <controller type='ide'...> from it (otherwise the upcoming patch would
      break make check)
      548ba430
  12. 08 5月, 2015 1 次提交
    • C
      caps: Fix regression defaulting to host arch · 8910e063
      Cole Robinson 提交于
      My commit 747761a7 (v1.2.15 only) dropped this bit of logic when filling
      in a default arch in the XML:
      
      -    /* First try to find one matching host arch */
      -    for (i = 0; i < caps->nguests; i++) {
      -        if (caps->guests[i]->ostype == ostype) {
      -            for (j = 0; j < caps->guests[i]->arch.ndomains; j++) {
      -                if (caps->guests[i]->arch.domains[j]->type == domain &&
      -                    caps->guests[i]->arch.id == caps->host.arch)
      -                    return caps->guests[i]->arch.id;
      -            }
      -        }
      -    }
      
      That attempt to match host.arch is important, otherwise we end up
      defaulting to i686 on x86_64 host for KVM, which is not intended.
      Duplicate it in the centralized CapsLookup function.
      
      Additionally add some testcases that would have caught this.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1219191
      8910e063
  13. 07 5月, 2015 1 次提交
    • C
      tests: Remove redundant aarch64 tests · fd74e231
      Cole Robinson 提交于
      My commit 7b9de914 added some aarch64 CPU test cases. I wanted to test
      two different code paths but inadvertently added two of the same test
      cases.
      
      The second code path (using <cpu><model>host</model</cpu>) isn't easily
      exercised via the qemu tests anyways, I'll need to look elsewhere.
      
      Regardless, remove the redundant tests for now
      fd74e231
  14. 05 5月, 2015 1 次提交
  15. 04 5月, 2015 1 次提交
  16. 30 4月, 2015 2 次提交
  17. 28 4月, 2015 1 次提交
    • J
      qemu: Use domain iothreadids to IOThread's 'thread_id' · 8d4614a5
      John Ferlan 提交于
      Add 'thread_id' to the virDomainIOThreadIDDef as a means to store the
      'thread_id' as returned from the live qemu monitor data.
      
      Remove the iothreadpids list from _qemuDomainObjPrivate and replace with
      the new iothreadids 'thread_id' element.
      
      Rather than use the default numbering scheme of 1..number of iothreads
      defined for the domain, use the iothreadid's list for the iothread_id
      
      Since iothreadids list keeps track of the iothread_id's, these are
      now used in place of the many places where a for loop would "know"
      that the ID was "+ 1" from the array element.
      
      The new tests ensure usage of the <iothreadid> values for an exact number
      of iothreads and the usage of a smaller number of <iothreadid> values than
      iothreads that exist (and usage of the default numbering scheme).
      8d4614a5
  18. 24 4月, 2015 3 次提交
  19. 21 4月, 2015 1 次提交
    • C
      domain: conf: Drop expectedVirtTypes · 835cf84b
      Cole Robinson 提交于
      This needs to specified in way too many places for a simple validation
      check. The ostype/arch/virttype validation checks later in
      DomainDefParseXML should catch most of the cases that this was covering.
      835cf84b
  20. 20 4月, 2015 1 次提交
  21. 13 4月, 2015 1 次提交
  22. 02 4月, 2015 2 次提交
  23. 27 3月, 2015 1 次提交
    • E
      relaxng: allow : in /dev/disk/by-path names · dfc70875
      Eric Blake 提交于
      On IRC, Hydrar pointed a problem where 'virsh edit' failed on
      his domain created through an ISCSI pool managed by virt-manager,
      all because the XML included a block device with colons in the
      name.
      
      * docs/schemas/basictypes.rng (absFilePath): Add colon as safe.
      * tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.xml: New file.
      * tests/qemuxml2argvdata/qemuxml2argv-disk-iscsi.args: Likewise.
      * tests/qemuxml2argvtest.c (mymain): Test it.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      dfc70875
  24. 26 3月, 2015 2 次提交
  25. 23 3月, 2015 2 次提交
    • P
      qemu: add support for memory devices · 8b54bffb
      Peter Krempa 提交于
      Add support to start qemu instance with 'pc-dimm' device. Thanks to the
      refactors we are able to reuse the existing function to determine the
      parameters.
      8b54bffb
    • P
      qemu: Implement setup of memory hotplug parameters · a41185d8
      Peter Krempa 提交于
      To enable memory hotplug the maximum memory size and slot count need to
      be specified. As qemu supports now other units than mebibytes when
      specifying memory, use the new interface in this case.
      a41185d8
  26. 16 3月, 2015 1 次提交
    • P
      conf: Make specifying <memory> optional · 4bca6192
      Peter Krempa 提交于
      Now that the size of guest's memory can be inferred from the NUMA
      configuration (if present) make it optional to specify <memory>
      explicitly.
      
      To make sure that memory is specified add a check that some form of
      memory size was specified. One side effect of this change is that it is
      no longer possible to specify 0KiB as memory size for the VM, but I
      don't think it would be any useful to do so. (I can imagine embedded
      systems without memory, just registers, but that's far from what libvirt
      is usually doing).
      
      Forbidding 0 memory for guests also fixes a few corner cases where 0 was
      not interpreted correctly and caused failures. (Arguments for numad when
      using automatic placement, size of the balloon). This fixes problems
      described in https://bugzilla.redhat.com/show_bug.cgi?id=1161461
      
      Test case changes are added to verify that the schema change and code
      behave correctly.
      4bca6192
  27. 09 3月, 2015 1 次提交
  28. 06 3月, 2015 1 次提交
  29. 05 3月, 2015 1 次提交
  30. 03 3月, 2015 1 次提交