1. 18 6月, 2014 3 次提交
  2. 17 6月, 2014 13 次提交
  3. 16 6月, 2014 8 次提交
    • M
      nodedev: Introduce <pci-express/> to PCI devices · 16ebf10f
      Michal Privoznik 提交于
      This new element is there to represent PCI-Express capabilities
      of a PCI devices, like link speed, number of lanes, etc.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      16ebf10f
    • M
      virpci: Introduce virPCIDeviceIsPCIExpress and friends · a22a7a5e
      Michal Privoznik 提交于
      These functions will handle PCIe devices and their link capabilities
      to query some info about it.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      a22a7a5e
    • E
      blockcommit: require base below top · 3e3c6ff1
      Eric Blake 提交于
      The block commit code looks for an explicit base file relative
      to the discovered top file; so for a chain of:
        base <- snap1 <- snap2 <- snap3
      and a command of:
        virsh blockcommit $dom vda --base snap2 --top snap1
      we got a sane message (here from libvirt 1.0.5):
      error: invalid argument: could not find base 'snap2' below 'snap1' in chain for 'vda'
      
      Meanwhile, recent refactoring has slightly reduced the quality of the
      libvirt error messages, by losing the phrase 'below xyz':
      error: invalid argument: could not find image 'snap2' in chain for 'snap3'
      
      But we had a one-off, where we were not excluding the top file
      itself in searching for the base; thankfully qemu still reports
      the error, but the quality is worse:
        virsh blockcommit $dom vda --base snap2 --top snap2
      error: internal error unable to execute QEMU command 'block-commit': Base '/snap2' not found
      
      Fix the one-off in blockcommit by changing the semantics of name
      lookup - if a starting point is specified, then the result must
      be below that point, rather than including that point.  The only
      other call to chain lookup was blockpull code, which was already
      forcing the lookup to omit the active layer and only needs a
      tweak to use the new semantics.
      
      This also fixes the bug exposed in the testsuite, where when doing
      a lookup pinned to an intermediate point in the chain, we were
      unable to return the name of the parent also in the chain.
      
      * src/util/virstoragefile.c (virStorageFileChainLookup): Change
      semantics for non-NULL startFrom.
      * src/qemu/qemu_driver.c (qemuDomainBlockJobImpl): Adjust caller,
      to keep existing semantics.
      * tests/virstoragetest.c (mymain): Adjust to expose new semantics.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      3e3c6ff1
    • E
      storage: better tests of lookup · b10a0e91
      Eric Blake 提交于
      Add some more tests of what happens when we restrict a lookup
      to begin at a point in the middle of a chain.  In particular,
      we want to ensure that a parent is not found when starting at
      the child.  This commit also demonstrates that we have a slight
      difference in behavior on what parent we report when filtering
      is in effect; as the determination of the parent affects the
      code in block commit, exposing this in the testsuite will help
      justify changes in future patches that tweak the semantics of
      what lookups are allowed.
      
      * tests/virstoragetest.c (testStorageLookup): Test user input.
      (TEST_LOOKUP_TARGET): Add parameter.
      (mymain): Add lookup tests.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      b10a0e91
    • E
      storage: renumber lookup tests · 54597c56
      Eric Blake 提交于
      The next patch will be adding tests, including adding a parameter
      for testing more conditions.  For ease of review of that patch, I
      want to create common context lines that don't change when the new
      tests are added (it's easier to visually review additions than it
      is to review an entire chunk of tests rewritten into another
      larger chunk of tests).
      
      * tests/virstoragetest.c (mymain): Add a parameter and renumber
      the lookup tests.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      54597c56
    • E
      storage: add alias for less typing · 47aaceb7
      Eric Blake 提交于
      Typing chain->backingStore->backingStore gets old after a while;
      introduce some alias variables to make the test more compact.
      
      * tests/virstoragetest.c (mymain): Introduce some shorthand.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      47aaceb7
    • P
      qemu: snapshot: Don't mark all block disks for metadata reuse · b77d3d9b
      Peter Krempa 提交于
      For block devices used as snapshot source the new snapshot code would
      set the reuse flag. This inhibits to take snapshot without specially
      preparing the block image before taking the snapshot.
      
      Fortunately this is not a regression as only the new way of specifying
      snapshot source is affected.
      
      For the followin snapshot XML:
       <domainsnapshot>
         <disks>
           <disk name='vda' type='block'>
             <driver type='qcow2'/>
             <source dev="/dev/andariel/testsnap" />
           </disk>
         </disks>
       </domainsnapshot>
      
      You'd get:
      error: internal error: unable to execute QEMU command 'transaction': Image is not in qcow2 format
      
      After this patch the snapshot is created successfully.
      b77d3d9b
    • P
      leaseshelper: fix another crash · 647bdf02
      Pavel Hrdina 提交于
      We create a 'lease_new' when we are adding new lease entry, then later
      in the code we add the 'lease_new' into a 'leases_array_new' which
      leads into the crash because we double free the 'lease_new'.
      
      To prevent the double free we set the 'lease_new' to NULL after
      successful append into the 'leases_array_new'.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      647bdf02
  4. 14 6月, 2014 4 次提交
  5. 13 6月, 2014 5 次提交
    • R
      bhyve: implement PCI address allocation · aad479dc
      Roman Bogorodskiy 提交于
      Automatically allocate PCI addresses for devices instead
      of hardcoding them in the driver code. The current
      allocation schema is to dedicate an entire slot for each devices.
      
      Also, allow having arbitrary number of devices.
      aad479dc
    • M
      virNetDevGetLinkInfo: Don't report link speed if NIC's not up · 90ba5ef1
      Michal Privoznik 提交于
      The kernel's more broken than one would think. Various drivers report
      various (usually spurious) values if the interface is in other state
      than 'up' . While on some we experience -EINVAL when read()-ing the
      speed sysfs file, with other drivers we might get anything from 0 to
      UINT_MAX. If that's the case it's better to not report link speed.
      Well, the interface is not up anyway.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      90ba5ef1
    • P
      tests: virstoragetest: Fix output when hitting errors · 51c43905
      Peter Krempa 提交于
      When the test is failing but the debug output isn't enabled the
      resulting line would look ugly like and would not contain the actual
      difference.
      
      TEST: virstoragetest
            .................chain member 1!chain member 1!chain member 1!
      
      Store the member index in the actual checked string to hide this problem
      51c43905
    • E
      blockcommit: update error messages related to block jobs · 278c51af
      Eric Blake 提交于
      A future patch will add two-phase block commit jobs; as the
      mechanism for managing them is similar to managing a block copy
      job, existing errors should be made generic enough to occur
      for either job type.
      
      * src/conf/domain_conf.c (virDomainHasDiskMirror): Update
      comment.
      * src/qemu/qemu_driver.c (qemuDomainDefineXML)
      (qemuDomainSnapshotCreateXML, qemuDomainRevertToSnapshot)
      (qemuDomainBlockJobImpl, qemuDomainBlockCopy): Update error
      message.
      * src/qemu/qemu_hotplug.c (qemuDomainDetachDiskDevice): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      278c51af
    • E
      virsh: improve blockcopy UI · 17840379
      Eric Blake 提交于
      Peter's review of an early version of my addition of active block
      commit pointed out some issues that I was copying from the block
      copy code; fix them up now before perpetuating them.
      
      For virsh commands that manage a single API call, it's nice to have
      a 1:1 mapping of options to flags, so that we can test that
      lower-layer software handles flag combinations correctly.  But where
      virsh is introducing syntactic sugar to combine multiple API calls
      into a single user interface, we might as well make that interface
      compact.  That is, we should allow the shorter command-line of
      'blockcopy $dom $disk --pivot' without having to explicitly specify
      --wait, because this isn't directly a flag passed to a single
      underlying API call.
      
      Also, my use of embedded ?: ternaries bordered on unreadable.
      
      * tools/virsh-domain.c (cmdBlockCopy): Make --pivot, --finish,
      and --timeout imply --wait. Drop excess ?: operators.
      * tools/virsh.pod (blockcopy): Update documentation.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      17840379
  6. 12 6月, 2014 7 次提交
    • M
      virNodeDevCapPCIDevParseXML: Initialize numa_node variable · bab45585
      Michal Privoznik 提交于
      With one of my recent patches (1c702778) libvirt's capable of
      reporting NUMA node locality for PCI devices. The node ID is
      stored in pci_dev.numa_node variable. However, since zero is
      valid NUMA node ID, the default is -1 as it is in kernel too.
      So, if the PCI device is not tied to any specific NUMA node, the
      default is then NOT printed into XML. Therefore, when parsing
      node device XML, the <node/> element is optional. But currently,
      if it's not there, we must set sane default, otherwise after
      parsing in the memory representation doesn't match the XML. We
      are already doing this in other place: udevProcessPCI().
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      bab45585
    • E
      blockcommit: fix regression with explicit top argument · 519181d9
      Eric Blake 提交于
      Commit f5869657 accidentally changed the semantics of the
      virDomainBlockCommit command; where it previously looked for
      an explicit top argument from the top of the chain, it now
      starts from the backing file of the top.  Of course, until
      we allow active commits, the only difference it makes is in
      the quality of the error message, but with code for active
      commit coming soon, we need to support an explicit mention
      of the active layer.
      
      * src/qemu/qemu_driver.c (qemuDomainBlockCommit): Start looking
      from top of chain.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      519181d9
    • J
      virsh: forbid negative vcpu argument to vcpupin · e4304104
      Jincheng Miao 提交于
      The vcpupin command allowed specifying a negative number for the --vcpu
      argument. This would the overflow when the underlying virDomainPinVcpu
      API was called.
      
       $ virsh vcpupin r7 -1 0
       error: numerical overflow: input too large: 4294967295
      
      Switch the vCPU variable to a unsigned int and parse it using the
      corresponding function.
      
      Also improve the vcpupin test to cover all the defects.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1101059Signed-off-by: NJincheng Miao <jmiao@redhat.com>
      Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
      e4304104
    • P
      virsh: Reject negative numbers in vshCommandOptULongLong · c6212539
      Peter Krempa 提交于
      To follow the new semantics of the vshCommandOptToU* functions convert
      this one to reject negative numbers too. To allow using -1 for "maximum"
      semantics for the vol-*load two bandwidth functions that use this helper
      introduce vshCommandOptULongLongWrap.
      c6212539
    • P
      virsh: Reject negative numbers in vshCommandOptUL · 0e2d7305
      Peter Krempa 提交于
      To follow the new semantics of the vshCommandOptToU* functions convert
      this one to reject negative numbers too. To allow using -1 for "maximum"
      semantics for the two bandwidth functions that use this helper introduce
      vshCommandOptULWrap. Although currently the migrate-setspeed function
      for the qemu driver will reject -1 as maximum.
      0e2d7305
    • P
      virsh: Reject negative numbers in vshCommandOptUInt · 37e663ad
      Peter Krempa 提交于
      Use virStrToLong_uip instead of virStrToLong_ui to reject negative
      numbers in the helper. None of the callers expects the wraparound
      "feature" for negative numbers.
      
      Also add a function that allows wrapping of negative numbers as it might
      be used in the future and be explicit about the new semantics in the
      function docs.
      37e663ad
    • J
      Fix crash when saving a domain with type none dac label · 7eb0ee17
      Ján Tomko 提交于
      qemuDomainGetImageIds did not check if there was a label
      in the seclabel, thus crashing on
      <seclabel type='none' model='dac'/>
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1108590
      7eb0ee17