1. 28 5月, 2016 1 次提交
    • M
      Turn 1<<31 into 1U<<31 · 0628f349
      Michal Privoznik 提交于
      Apparently, 1 << 31 is signed which in turn does not fit into
      a signed integer variable:
      
      ../../include/libvirt/libvirt-domain.h:1881:57: error: result of '1 << 31' requires 33 bits to represent, but 'int' only has 32 bits [-Werror=shift-overflow=]
           VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS = 1 << 31, /* enforce requested stats */
                                                               ^~
      cc1: all warnings being treated as errors
      
      The solution is to make it an unsigned value. I've found only two
      such occurrences in our code base.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      0628f349
  2. 25 5月, 2016 3 次提交
  3. 22 5月, 2016 1 次提交
  4. 20 5月, 2016 7 次提交
    • J
      util: Introduce virCryptoGenerateRandom · 23803250
      John Ferlan 提交于
      Move the logic from qemuDomainGenerateRandomKey into this new
      function, altering the comments, variable names, and error messages
      to keep things more generic.
      
      NB: Although perhaps more reasonable to add soemthing to virrandom.c.
          The virrandom.c was included in the setuid_rpc_client, so I chose
          placement in vircrypto.
      23803250
    • J
      util: Introduce encryption APIs · 1ce9c08a
      John Ferlan 提交于
      Introduce virCryptoHaveCipher and virCryptoEncryptData to handle
      performing encryption.
      
       virCryptoHaveCipher:
         Boolean function to determine whether the requested cipher algorithm
         is available. It's expected this API will be called prior to
         virCryptoEncryptdata. It will return true/false.
      
       virCryptoEncryptData:
         Based on the requested cipher type, call the specific encryption
         API to encrypt the data.
      
      Currently the only algorithm support is the AES 256 CBC encryption.
      
      Adjust tests for the API's
      1ce9c08a
    • J
      util: Remove need for STATIC_ANALYSIS check · 4a718d6a
      John Ferlan 提交于
      Seems recent versions of Coverity have (mostly) resolved the issue using
      ternary operations in VIR_FREE (and now VIR_DISPOSE*) macros.  So let's
      just remove it and if necessary handle one off issues as the arise.
      4a718d6a
    • J
      util: Adjust return for virPCIGetDeviceAddressFromSysfsLink · c1faf309
      John Ferlan 提交于
      Rather than return 0/-1 and/or a pointer to some memory, adjust the
      helper to just return the allocated structure or NULL on failure.
      
      Adjust the callers in order to handle that
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      c1faf309
    • J
      util: Remove need for ret in virPCIGetPhysicalFunction · c8b1a836
      John Ferlan 提交于
      Since the callers only ever expect 0 or -1, let's just return that directly
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      c8b1a836
    • J
      util: Fix error path for virPCIGetVirtualFunctions · 1f1273c2
      John Ferlan 提交于
      If we get to the error: label and clear out the *virtual_functions[]
      pointers and then return w/ error to the caller - the caller has it's
      own cleanup of the same array in the out: label which is keyed off the
      value of num_virt_fns, which wasn't reset to 0 in the called function
      leading to a possible problem.
      
      Just clear the value (found by Coverity)
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      1f1273c2
    • J
      More usage of virGetLastErrorMessage · b29e08db
      Jovanka Gulicoska 提交于
      Convert to virGetLastErrorMessage() in the rest of the code
      b29e08db
  5. 19 5月, 2016 1 次提交
    • Q
      perf: add support to perf event for MBM · 90b9995d
      Qiaowei Ren 提交于
      Some Intel processor families (e.g. the Intel Xeon processor E5 v3
      family) introduced some RDT (Resource Director Technology) features
      to monitor or control shared resource. Among these features, MBM
      (Memory Bandwidth Monitoring), which is build on the CMT (Cache
      Monitoring Technology) infrastructure, provides OS/VMM a way to
      monitor bandwidth from one level of cache to another.
      
      With current perf framework, this patch adds support to perf event
      for MBM.
      Signed-off-by: NQiaowei Ren <qiaowei.ren@intel.com>
      90b9995d
  6. 18 5月, 2016 5 次提交
    • J
      iscsi: Remove initiatoriqn from virISCSIScanTargets · 027986f5
      John Ferlan 提交于
      No longer necessary to have it, so remove it.
      027986f5
    • F
      util: Remove disabling of autologin for iscsi-targets · 56057900
      Fritz Elfert 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1331552
      
      Instead of disabling auto-login of all scsi targets (even those
      that do not "belong" to libvirt), use iscsiadm's "--op nonpersistent"
      during discovery of iSCSI targets (e.g. "iscsiadm --mode discovery
      --type sendtargets") in order to avoid the node database being altered
      which led to the need for the "large hammer" approach taken by
      commit id '3c12b654'.
      
      This commit removes the virISCSITargetAutologin adjustment (eg. the setting
      of node.startup to "manual"). The iscsiadm command has supported this mode
      of operation as of commit id 'ad873767' to open-iscsi.
      56057900
    • J
      iscsi: Add exit status checking for virISCSIGetSession · 8f54e0d6
      John Ferlan 提交于
      Utilize the exit status parameter for virCommandRunRegex in order to
      check the return error from the 'iscsiadm --mode session' command.
      Without this enabled, if there are no sessions running then virCommandRun
      would have displayed an error such as:
      
          2016-05-13 15:17:15.165+0000: 10920: error : virCommandWait:2553 :
                     internal error: Child process (iscsiadm --mode session)
                     unexpected exit status 21: iscsiadm: No active sessions.
      
      It is possible that for certain paths (when probe is true) we only care
      whether it's running or not to make certain decisions.  Spitting out
      the error for those paths is unnecessary.
      
      If we do have a situation where probe = false and there's an error,
      then display the error from iscsiadm if it's there.
      8f54e0d6
    • J
      util: Add exitstatus parameter to virCommandRunRegex · 8b104947
      John Ferlan 提交于
      Rather than have virCommandRun just spit out the error, allow callers
      to decide to pass the exitstatus so the caller can make intelligent
      decisions based on the error.
      8b104947
    • J
      Change return value of VIR_APPEND*INPLACE* to void · f2b46097
      Jiri Denemark 提交于
      The INPLACE variants of the VIR_APPEND macros cannot fail and they are
      inherently quiet.
      f2b46097
  7. 16 5月, 2016 3 次提交
  8. 13 5月, 2016 1 次提交
  9. 12 5月, 2016 1 次提交
    • E
      util: Fix virGetLastErrorMessage to return proper error when 'err' is NULL · e711a391
      Erik Skultety 提交于
      Both virGetLastError and virGetLastErrorMessage call virLastErrorObject method
      that returns a thread-local error object. However, if a direct call to malloc
      or pthread_setspecific (probably also due to malloc, since it sets ENOMEM)
      fail, virLastErrorObject returns NULL which, although incorrectly interpreted
      by virGetLastError as no error, still requires the caller to check for NULL
      pointer. This isn't the case with virGetLastErrorMessage that also treated it
      incorrectly as no error, but returned the literal "no error".
      This patch tweaks the checks in the virGetLastErrorMessage function, so that
      if virLastErrorObject failed, it returned "unknown error" which is equivalent
      to the current approach with virGetLastError and if it returned NULL,
      "unknown error" was set.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      e711a391
  10. 11 5月, 2016 3 次提交
    • J
      storage: Fix regression cloning volume into a logical pool · 2c52ec43
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1318993
      
      Commit id 'dd519a29' caused a regression cloning a volume into a
      logical pool by removing just the 'allocation' adjustment during
      storageVolCreateXMLFrom. Combined with the change to not require the
      new volume input XML to have a capacity listed (commit id 'e3f1d2a8')
      left the possibility that a zero allocation value (e.g., not provided)
      would create a thin/sparse logical volume. When a thin lv becomes fully
      populated, then LVM sets the partition 'inactive' and the subsequent
      fdatasync() fails.
      
      Add a new 'has_allocation' flag to be set at XML parse time to indicate
      that allocation was provided. This is done so that if it's not provided
      the create-from code uses the capacity value since we document that if
      omitted, the volume will be fully allocated at time of creation.
      
      For a logical backend, that creation time is 'createVol', while for a
      file backend, creation doesn't set the size, but the 'createRaw' called
      during buildVolFrom will decide whether the file is sparse or not based
      on the provided capacity and allocation value.
      
      For volume clones that provide different allocation and capacity values
      to allow for sparse files, there is no change.
      2c52ec43
    • E
      headers: Remove unnecessary keyword extern from function declaration · 898c0bbe
      Erik Skultety 提交于
      Usage of this keyword in front of function declaration that is exported via a
      header file is unnecessary, since internally, this has been the default for most
      compilers for quite some time.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      898c0bbe
    • L
      util: set vlan tag for macvtap passthrough mode on SRIOV VFs · 75db9997
      Laine Stump 提交于
      SRIOV VFs used in macvtap passthrough mode can take advantage of the
      SRIOV card's transparent vlan tagging. All the code was there to set
      the vlan tag, and it has been used for SRIOV VFs used for hostdev
      interfaces for several years, but for some reason, the vlan tag for
      macvtap passthrough devices was stubbed out with a -1.
      
      This patch moves a bit of common validation down to a lower level
      (virNetDevReplaceNetConfig()) so it is shared by hostdev and macvtap
      modes, and updates the macvtap caller to actually send the vlan config
      instead of -1.
      75db9997
  11. 09 5月, 2016 2 次提交
  12. 06 5月, 2016 1 次提交
    • M
      virCgroupValidateMachineGroup: Reflect change in CGroup struct naming · fb377701
      Michal Privoznik 提交于
      Fron c3bd0019 on instead of creating the following path for
      cgroups:
      
        /sys/fs/cgroupX/$name.libvirt-$driver
      
      we generate rather more verbose one:
      
        /sys/fs/cgroupX/$driver-$id-$name.libvirt-$driver
      
      where $name is optional and included iff contains allowed chars.
      See original commit for more reasoning. Now, problem with the
      original commit is that we are unable to start any LXC domain
      after it. Because when starting LXC container, the CGroup layout
      is created by our lxc_controller process and then detected and
      validated by libvirtd. The validation is done by trying to match
      detected layout against all the possible patterns for cgroup
      paths that we've ever had. And the commit in question forgot to
      update this part of the code.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      fb377701
  13. 05 5月, 2016 1 次提交
  14. 03 5月, 2016 3 次提交
  15. 02 5月, 2016 3 次提交
  16. 22 4月, 2016 1 次提交
    • C
      virconf: Handle conf file without ending newline · 3cc2a9e0
      Cole Robinson 提交于
      $ echo -n 'log_level=1' > ~/.config/libvirt/libvirtd.conf
      $ libvirtd --timeout=10
      2014-10-10 10:30:56.394+0000: 6626: info : libvirt version: 1.1.3.6, package: 1.fc20 (Fedora Project, 2014-09-08-17:50:42, buildvm-05.phx2.fedoraproject.org)
      2014-10-10 10:30:56.394+0000: 6626: error : main:1261 : Can't load config file: configuration file syntax error: /home/rjones/.config/libvirt/libvirtd.conf:1: expecting a value: /home/rjones/.config/libvirt/libvirtd.conf
      
      Rather than try to fix this in the depths of the parser, just catch
      the case when a config file doesn't end in a newline, and manually
      append a newline to the content before parsing
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1151409
      3cc2a9e0
  17. 20 4月, 2016 2 次提交
    • C
      storage: remove support for /usr/bin/kvm-img · 487d211d
      Cole Robinson 提交于
      This an ubuntu/debian packaging convention. At one point it may have
      been an actually different binary, but at least as of ubuntu precise
      (the oldest supported ubuntu distro, released april 2012) kvm-img is
      just a symlink to qemu-img for back compat.
      
      I think it's safe to drop support for it
      487d211d
    • A
      qemu: Probe GIC capabilities · 12209ba5
      Andrea Bolognani 提交于
      QEMU introduced the query-gic-capabilities QMP command
      with commit 4468d4e0f383: use the command, if available,
      to probe available GIC capabilities.
      
      The information obtained is stored in a virQEMUCaps
      instance, and will be later used to fill in a
      virDomainCaps instance.
      12209ba5
  18. 19 4月, 2016 1 次提交