1. 06 2月, 2016 8 次提交
    • J
      util: Fix virCgroupNewMachine ATTRIBUTE_NONNULL args · b8c0f186
      John Ferlan 提交于
      Commit id 'c3bd0019' removed arg3, but forgot to adjust the numbers
      for NONNULL - caused build failure for coverity
      b8c0f186
    • R
      bhyve: fix preprocessor indentation · dcb3d87d
      Roman Bogorodskiy 提交于
      Syntax-check fails with:
      
      cppi: src/bhyve/bhyve_driver.h: line 26: not properly indented
      cppi: src/bhyve/bhyve_driver.h: line 27: not properly indented
      maint.mk: incorrect preprocessor indentation
      
      Fix by properly indenting '#include's.
      
      Pushed as trivial.
      dcb3d87d
    • M
      bhyve: Fix the build · 5147f4f3
      Michal Privoznik 提交于
      After 1036ddad we use bhyveDriverGetCapabilities from other
      sources too, not only from bhyve_driver.c. However, the function
      was static so not properly expose to other files. In order to
      expose it, we need to move couple of #include-s too.
      Then, there has been a copy paste error in
      virBhyveProcessReconnect: s/privconn/data->driver/.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      5147f4f3
    • C
      tests: qemuargv2xml: separate from qemuxml2argv data · e117bf64
      Cole Robinson 提交于
      Most of the qemuargv2xml tests are parsing old style qemu command
      lines (with -disk, -serial, etc), and it gets its input from
      qemuxml2argv output.
      
      But since we've raise the minimum supported qemu version to 0.12.0,
      which supports -device, once that changes propagates through libvirt
      the vast majority of qemuxml2argv output is _not_ going to be using
      old style qemu options.
      
      In preparation for this, switch qemuargv2xml to use its own copies
      of input and output, so it's not tied to qemuxml2argv results.
      
      This is just a straight copy of the current tests.
      e117bf64
    • C
      tests: Run test-wrap-argv with REGENERATE_OUTPUT · 3e9033f7
      Cole Robinson 提交于
      To get properly wrapped output
      3e9033f7
    • W
      rbd: Use %zu for uint64_t instead of casting to unsigned long long · 2aed051d
      Wido den Hollander 提交于
      This was only used in debugging messages and not in any real code.
      
      Ceph/RBD uses uint64_t for sizes internally and they can be printed
      with %zu without any need for casting.
      Signed-off-by: NWido den Hollander <wido@widodh.nl>
      2aed051d
    • W
      rbd: Code styling cleanup · f4981ebf
      Wido den Hollander 提交于
      Through the years the RBD storage pool code hasn't maintained the
      same or correct coding standard which applies to libvirt.
      
      This patch doesn't change any logic in the code, it only applies
      the proper coding standards to the code where possible without
      making large changes.
      
      This way the code style used in this storage pool is consistent
      throughout the whole file.
      Signed-off-by: NWido den Hollander <wido@widodh.nl>
      f4981ebf
    • M
      virSystemdGetMachineNameByPID: Initialize @reply · a3b168d0
      Michal Privoznik 提交于
      I've noticed that variable @reply is not initialized and if
      something at the beginning of the function fails, e.g.
      virDBusGetSystemBus(), the control jump straight to cleanup label
      where dbus_message_unref() is then called over this uninitialized
      variable.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      a3b168d0
  2. 05 2月, 2016 8 次提交
    • M
      virnetdevbandwidth: Compute quantum value · 065054da
      Michal Privoznik 提交于
      I've noticed couple of warning in dmesg while debugging
      something:
      
      [ 9683.973754] HTB: quantum of class 10001 is big. Consider r2q change.
      [ 9683.976460] HTB: quantum of class 10002 is big. Consider r2q change.
      
      I've read the HTB documentation and linux kernel code to find out
      what's wrong. Basically we need to pass another argument
      "quantum" to our tc cmd line because the default computed by HTB
      does not always work in which case the warning message is printed
      out.
      
      You can read more details here:
      
      http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm#sharingSigned-off-by: NMichal Privoznik <mprivozn@redhat.com>
      065054da
    • P
      conf: Extract code for parsing thread resource scheduler info · 173054ce
      Peter Krempa 提交于
      As the scheduler info elements are represented orthogonally to how it
      makes sense to actually store the information, the extracted code will
      be later used when converting between XML and internal definitions.
      173054ce
    • P
      e992aa21
    • P
      util: bitmap: Introduce bitmap subtraction · 9479642f
      Peter Krempa 提交于
      Performs binary subtraction of two bitmaps. Stores result in the first
      operand.
      9479642f
    • M
      systemd: Modernize machine naming · c3bd0019
      Martin Kletzander 提交于
      So, systemd-machined has this philosophy that machine names are like
      hostnames and hence should follow the same rules.  But we always allowed
      international characters in domain names.  Thus we need to modify the
      machine name we are passing to systemd.
      
      In order to change some machine names that we will be passing to systemd,
      we also need to call TerminateMachine at the end of a lifetime of a
      domain.  Even for domains that were started with older libvirt.  That
      can be achieved thanks to virSystemdGetMachineNameByPID().  And because
      we can change machine names, we can get rid of the inconsistent and
      pointless escaping of domain names when creating machine names.
      
      So this patch modifies the naming in the following way.  It creates the
      name as <drivername>-<id>-<name> where invalid hostname characters are
      stripped out of the name and if the resulting name is longer, it
      truncates it to 64 characters.  That way we can start domains we
      couldn't start before.  Well, at least on systemd.
      
      To make it work all together, the machineName (which is needed only with
      systemd) is saved in domain's private data.  That way the generation is
      moved to the driver and we don't need to pass various unnecessary
      arguments to cgroup functions.
      
      The only thing this complicates a bit is the scope generation when
      validating a cgroup where we must check both old and new naming, so a
      slight modification was needed there.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1282846Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      c3bd0019
    • J
      conf: add caps to virDomainSnapshotDefFormat · b8b03f64
      Joao Martins 提交于
      The virDomainSnapshotDefFormat calls into virDomainDefFormat,
      so should be providing a non-NULL virCapsPtr instance. On the
      qemu driver we change qemuDomainSnapshotWriteMetadata to also
      include caps since it calls virDomainSnapshotDefFormat.
      Signed-off-by: NJoao Martins <joao.m.martins@oracle.com>
      b8b03f64
    • D
      conf: add caps to virDomainObjFormat/SaveStatus · 1036ddad
      Daniel P. Berrange 提交于
      The virDomainObjFormat and virDomainSaveStatus methods
      both call into virDomainDefFormat, so should be providing
      a non-NULL virCapsPtr instance.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      1036ddad
    • R
      bhyve: fix build · 02a34d2a
      Roman Bogorodskiy 提交于
      Fix build fail introduced as a side effect of commit d239a542.
      
      Pushed under the build breaker rule.
      02a34d2a
  3. 04 2月, 2016 11 次提交
  4. 03 2月, 2016 13 次提交
    • E
      util: Export remoteSerializeTypedParameters internally via util · 8cd1d546
      Erik Skultety 提交于
      Same as for deserializer, this method might get handy for admin one day.
      The major reason for this patch is to stay consistent with idea, i.e.
      when deserializer can be shared, why not serializer as well. The only
      problem to be solved was that the daemon side serializer uses a code
      snippet which handles sparse arrays returned by some APIs as well as
      removes any string parameters that can't be returned to older clients.
      This patch makes of the new virTypedParameterRemote datatype introduced
      by one of the pvious patches.
      8cd1d546
    • E
      util: Export remoteFreeTypedParameters internally via util · 9afc115f
      Erik Skultety 提交于
      Since the method is static to remote_driver, it can't even be used by our
      daemon. Other than that, it would be useful to be able to use it with admin as
      well. This patch uses the new virTypedParameterRemote datatype introduced in
      one of previous patches.
      9afc115f
    • E
      util: Export remoteDeserializeTypedParameters internally via util · 0472cef6
      Erik Skultety 提交于
      Currently, the deserializer is hardcoded into remote_driver which makes
      it impossible for admin to use it. One way to achieve a shared implementation
      (besides moving the code to another module) would be pass @ret_params_val as a
      void pointer as opposed to the remote_typed_param pointer and add a new extra
      argument specifying which of those two protocols is being used and typecast
      the pointer at the function entry. An example from remote_protocol:
      
      struct remote_typed_param_value {
              int type;
              union {
                      int i;
                      u_int ui;
                      int64_t l;
                      uint64_t ul;
                      double d;
                      int b;
                      remote_nonnull_string s;
              } remote_typed_param_value_u;
      };
      typedef struct remote_typed_param_value remote_typed_param_value;
      
      struct remote_typed_param {
              remote_nonnull_string field;
              remote_typed_param_value value;
      };
      
      That would leave us with a bunch of if-then-elses that needed to be used across
      the method. This patch takes the other approach using the new datatype
      introduced in one of earlier commits.
      0472cef6
    • E
      util: Introduce virTypedParameterRemote datatype · 41a45994
      Erik Skultety 提交于
      Both admin and remote protocols define their own types
      (remote_typed_param vs admin_typed_param). Because of the naming convention,
      admin typed params wouldn't be able to reuse the serialization/deserialization
      methods, which are tailored for use by remote protocol, even if those method
      were exported properly. In that case, introduce a new internal data type
      structurally copying both admin and remote protocols which, eventually, would
      allow serializer and deserializer to be used in a more generic way.
      41a45994
    • N
      qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix · 1e93470d
      Nikolay Shirokovskiy 提交于
      A pretty nasty deadlock occurs while trying to rename a VM in parallel
      with virDomainObjListNumOfDomains.
      The short description of the problem is as follows:
      
      Thread #1:
      
      qemuDomainRename:
          ------> aquires domain lock by qemuDomObjFromDomain
             ---------> waits for domain list lock in any of the listed functions:
                - virDomainObjListFindByName
                - virDomainObjListRenameAddNew
                - virDomainObjListRenameRemove
      
      Thread #2:
      
      virDomainObjListNumOfDomains:
          ------> aquires domain list lock
             ---------> waits for domain lock in virDomainObjListCount
      
      Introduce generic virDomainObjListRename function for renaming domains.
      It aquires list lock in right order to avoid deadlock. Callback is used
      to make driver specific domain updates.
      Signed-off-by: NNikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      1e93470d
    • M
      92757d4d
    • M
      Revert "systemd: Escape only needed characters for machined" · 9ba26462
      Martin Kletzander 提交于
      This reverts commit 0e0149ce.
      
      That commit was added to comply with systemd rules that were changed in
      the meantime, so this patch is pointless.
      9ba26462
    • J
      Simplify virDomainParseMemory · e1d7273f
      Ján Tomko 提交于
      Do not store the return value of virDomainParseScaledValue,
      it was overwritten anyway.
      
      Delete the cleanup label, there is nothing to clean up.
      e1d7273f
    • P
      598927a5
    • P
      qemu: domain: Prepare qemuDomainDetectVcpuPids for reuse · 451b955d
      Peter Krempa 提交于
      Free the old vcpupids array in case when this function is called again
      during the run of the VM. It will be later reused in the vCPU hotplug
      code. The function now returns the number of detected VCPUs.
      451b955d
    • P
      qemu: Move and rename qemuProcessDetectVcpuPIDs to qemuDomainDetectVcpuPids · e97d1d20
      Peter Krempa 提交于
      Future patches will tweak and reuse the function in different places so
      move it separately first.
      e97d1d20
    • P
      qemu: cpu hotplug: Set vcpu state directly in the new structure · a190744a
      Peter Krempa 提交于
      Avoid using virDomainDefSetVcpus when we can set it directly in the
      structure.
      a190744a
    • P
      conf: Add helper to retrieve bitmap of active vcpus for a definition · 9bf284da
      Peter Krempa 提交于
      In some cases it may be better to have a bitmap representing state of
      individual vcpus rather than iterating the definition. The new helper
      creates a bitmap representing the state from the domain definition.
      9bf284da