1. 27 7月, 2015 3 次提交
  2. 25 7月, 2015 3 次提交
    • L
      conf: add virDomainControllerDefNew() · e1431072
      Laine Stump 提交于
      There are some non-0 default values in virDomainControllerDef (and
      will soon be more) that are easier to not forget if the remembering is
      done by a single initializer function (rather than inline code after
      allocating the obejct with generic VIR_ALLOC().
      e1431072
    • L
      qemu: reorganize loop in qemuDomainAssignPCIAddresses · 07268782
      Laine Stump 提交于
      This loop occurs just after we've assured that all devices that
      require a PCI device have been assigned and all necessary PCI
      controllers have been added. It is the perfect place to add other
      potentially auto-generated PCI controller attributes that are
      dependent on the controller's PCI address (upcoming patch).
      
      There is a convenient loop through all controllers at the end of the
      function, but the patch to add new functionality will be cleaner if we
      first rearrange that loop a bit.
      
      Note that the loop originally was accessing info.addr.pci.bus prior to
      determining that the pci part of the object was valid. This isn't
      dangerous in any way, but seemed a bit ugly, so I fixed it.
      07268782
    • L
      conf: pay attention to bus minSlot/maxSlot when autoassigning PCI addresses · d4cf72af
      Laine Stump 提交于
      The function that auto-assigns PCI addresses was written with the
      hardcoded assumptions that any PCI bus would have slots available
      starting at 1 and ending at 31. This isn't true for many types of
      controllers (some have a single slot/port at 0, some have slots/ports
      from 0 to 31). This patch updates that function to remove the
      hardcoded assumptions. It will properly find/assign addresses for
      devices that can only connect to pcie-(root|downstream)-port (which
      have minSlot/maxSlot of 0/0) or a pcie-switch-upstream-port (0/31).
      
      It still will not auto-create a new bus of the proper kind for these
      connections when one doesn't exist, that task is for another day.
      d4cf72af
  3. 24 7月, 2015 7 次提交
  4. 23 7月, 2015 3 次提交
  5. 22 7月, 2015 18 次提交
    • R
      netdev: fix build on FreeBSD · 830344d6
      Roman Bogorodskiy 提交于
      Commit ac3ed208 breaks build on FreeBSD with:
      
        CC       util/libvirt_util_la-virnetdev.lo
      util/virnetdev.c:2967:1: error: unused function 'virNetDevRDMAFeature' [-Werror,-Wunused-function]
      virNetDevRDMAFeature(const char *ifname,
      ^
      
      So hide virNetDevRDMAFeature function under the #ifdef 'SIOCETHTOOL'
      and 'HAVE_STRUCT_IFREQ' section.
      
      Pushed under the build breaker rule.
      830344d6
    • D
      configure: clarify rationale for checking pkcheck · a92bb087
      Daniel P. Berrange 提交于
      We don't need pkcheck binary, but we must detect it in order
      to see if we're preferring polkit-1 over polkit-0 when both
      are installed. We should also check $with_dbus to see if we
      have dbus-devel available, as that's required to talk to
      polkit-1.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      a92bb087
    • L
      qemu: fix the error cover issue in SetMemoryParameters · 704cf06a
      Luyao Huang 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1245476
      
      We won't return the errno after commit 0d7f45ae, and
      the more clearly error will be set in the code in vircgroup*.
      Also We will always report error "Operation not permitted",
      because the return is -1.
      Signed-off-by: NLuyao Huang <lhuang@redhat.com>
      704cf06a
    • A
      nodeinfo: Calculate present and online CPUs only once · 6395ec1c
      Andrea Bolognani 提交于
      Move the calls to the respective functions from virNodeParseNode(),
      which is executed once for every NUMA node, to
      linuxNodeInfoCPUPopulate(), which is executed just once per host.
      6395ec1c
    • A
      nodeinfo: Use a bitmap to keep track of node CPUs · 05be6062
      Andrea Bolognani 提交于
      Keep track of what CPUs belong to the current node while walking
      through the sysfs node entry, so we don't need to do it a second
      time immediately afterwards.
      
      This also allows us to loop through all CPUs that are part of a
      node in guaranteed ascending order, which is something that is
      required for some upcoming changes.
      05be6062
    • A
      nodeinfo: Use nodeGetOnlineCPUBitmap() when parsing node · b909e9fb
      Andrea Bolognani 提交于
      No need to look up the online status of each CPU separately when we
      can get all the information in one go.
      b909e9fb
    • A
      nodeinfo: Phase out cpu_set_t usage · b7b50647
      Andrea Bolognani 提交于
      Swap out all instances of cpu_set_t and replace them with virBitmap,
      which some of the code was already using anyway.
      
      The changes are pretty mechanical, with one notable exception: an
      assumption has been added on the max value we can run into while
      reading either socket_it or core_id.
      
      While this specific assumption was not in place before, we were
      using cpu_set_t improperly by not making sure not to set any bit
      past CPU_SETSIZE or explicitly allocating bigger bitmaps; in fact
      the default size of a cpu_set_t, 1024, is way too low to run our
      testsuite, which includes core_id values in the 2000s.
      b7b50647
    • A
      nodeinfo: Rename nodeGetCPUBitmap() to nodeGetOnlineCPUBitmap() · c1df42d7
      Andrea Bolognani 提交于
      The new name makes it clear that the returned bitmap contains the
      information about which CPUs are online, not eg. which CPUs are
      present.
      
      No behavioral change.
      c1df42d7
    • A
      nodeinfo: Remove out parameter from nodeGetCPUBitmap() · ccd0ea7e
      Andrea Bolognani 提交于
      Not all users of this API will need the size of the returned
      bitmap; those who do can simply call virBitmapSize() themselves.
      ccd0ea7e
    • A
      nodeinfo: Add old kernel compatibility to nodeGetPresentCPUBitmap() · 37f73e4a
      Andrea Bolognani 提交于
      If the cpu/present file is not available, we assume that the kernel
      is too old to support non-consecutive CPU ids and return a bitmap
      with all the bits set to represent this fact. This assumption is
      already exploited in nodeGetCPUCount().
      
      This means users of this API can expect the information to always
      be available unless an error has occurred, and no longer need to
      treat the NULL return value as a special case.
      
      The error message has been updated as well.
      37f73e4a
    • A
      nodeinfo: Rename linuxParseCPUmax() to linuxParseCPUCount() · a2e2add1
      Andrea Bolognani 提交于
      The original name was confusing because the function returns the number
      of CPUs, not the maximum CPU id. The comment above the function has
      been updated to reflect this.
      
      No behavioral changes.
      a2e2add1
    • A
      nodeinfo: Introduce linuxGetCPUOnlinePath() · 6fecc401
      Andrea Bolognani 提交于
      6fecc401
    • A
      nodeinfo: Introduce linuxGetCPUGlobalPath() · bd87f07c
      Andrea Bolognani 提交于
      This is just a more generic version of linuxGetCPUPresentPath(),
      which is now implemented by calling the new function appropriately.
      bd87f07c
    • A
      nodeinfo: Fix nodeGetCPUBitmap()'s fallback code path · 2a680189
      Andrea Bolognani 提交于
      During the recent refactoring/cleanups, a bug has been introduced
      that caused all CPUs to be reported as online unless the sysfs
      cpu/present file was available.
      
      This commit fixes the fallback code path by building the directory
      path passed to virNodeGetCpuValue() correctly.
      2a680189
    • A
    • A
      tests: Restore links in deconfigured-cpus nodeinfo test · cc3d52eb
      Andrea Bolognani 提交于
      When cleaning up the data (taken from a running system) for inclusion
      I went a little too far and deleted a bunch of links that should have
      been left alone. The test worked despite this because it was going
      through a fallback code path.
      
      A few other files are affected as well: again, the data is taken from
      a running system, so even thought we would probably be okay if we
      just added the links, aligning everything is definitely safer.
      cc3d52eb
    • P
      cgroup: Drop resource partition from virSystemdMakeScopeName · 88f6c007
      Peter Krempa 提交于
      The scope name, even according to our docs is
      "machine-$DRIVER\x2d$VMNAME.scope" virSystemdMakeScopeName would use the
      resource partition name instead of "machine-" if it was specified thus
      creating invalid scope paths.
      
      This makes libvirt drop cgroups for a VM that uses custom resource
      partition upon reconnecting since the detected scope name would not
      match the expected name generated by virSystemdMakeScopeName.
      
      The error is exposed by the following log entry:
      
      debug : virCgroupValidateMachineGroup:302 : Name 'machine-qemu\x2dtestvm.scope' for controller 'cpu' does not match 'testvm', 'testvm.libvirt-qemu' or 'machine-test-qemu\x2dtestvm.scope'
      
      for a "/machine/test" resource and "testvm" vm.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1238570
      88f6c007
    • C
      spec: Fix polkit dep on F23 · 6600f4f3
      Cole Robinson 提交于
      As of fedora polkit-0.113-2, polkit-devel only pulls in polkit-libs, not
      full polkit, but we need the latter for pkcheck otherwise our configure
      test fails.
      6600f4f3
  6. 21 7月, 2015 6 次提交
    • P
      virsh: Refactor block job waiting in cmdBlockCopy · faa14391
      Peter Krempa 提交于
      Similarly to the refactor of cmdBlockCommit in a previous commit this
      does the same change for cmdBlockCopy.
      faa14391
    • P
      virsh: Refactor block job waiting in cmdBlockCommit · 74084035
      Peter Krempa 提交于
      Reuse the vshBlockJobWait infrastructure to refactor cmdBlockCommit to
      use the common code. This additionally fixes a bug when working with
      new qemus, where when doing an active commit with --pivot the pivoting
      would fail, since qemu reaches 100% completion but the job doesn't
      switch to synchronized phase right away.
      74084035
    • P
      virsh: Refactor block job waiting in cmdBlockPull · 2e782763
      Peter Krempa 提交于
      Introduce helper function that will provide logic for waiting for block
      job completion so the 3 open coded places can be unified and improved.
      
      This patch introduces the whole logic and uses it to fix
      cmdBlockJobPull. The vshBlockJobWait function provides common logic for
      block job waiting that should be robust enough to work across all
      previous versions of libvirt. Since virsh allows passing user-provided
      strings as paths of block devices we can't reliably use block job events
      for detection of block job states so the function contains a great deal
      of fallback logic.
      2e782763
    • P
      qemu: Update state of block job to READY only if it actually is ready · eae59247
      Peter Krempa 提交于
      Few parts of the code looked at the current progress of and assumed that
      a two phase blockjob is in the _READY state as soon as the progress
      reached 100% (info.cur == info.end). In current versions of qemu this
      assumption is invalid and qemu exposes a new flag 'ready' in the
      query-block-jobs output that is set to true if the job is actually
      finished.
      
      This patch adds internal data handling for reading the 'ready' flag and
      acting appropriately as long as the flag is present.
      
      While this still doesn't fix the virsh client problem with two phase
      block jobs and the --pivot option, it at least improves the error
      message:
      
      $ virsh blockcommit  --wait --verbose vm vda  --base vda[1] --active --pivot
      Block commit: [100 %]error: failed to pivot job for disk vda
      error: internal error: unable to execute QEMU command 'block-job-complete': The active block job for device 'drive-virtio-disk0' cannot be completed
      
      to
      
      $ virsh blockcommit  --wait --verbose VM vda  --base vda[1] --active --pivot
      Block commit: [100 %]error: failed to pivot job for disk vda
      error: block copy still active: disk 'vda' not ready for pivot yet
      eae59247
    • P
      virsh: Refactor argument handling in cmdBlockPull · 44b18323
      Peter Krempa 提交于
      Put all argument parsing together and refactor the argument checking
      code.
      44b18323
    • P
      virsh: Refactor argument handling in cmdBlockCopy · 8e85f628
      Peter Krempa 提交于
      Put all argument parsing together and refactor the argument checking
      code.
      8e85f628