1. 24 3月, 2017 8 次提交
    • L
      util: new function virPCIDeviceRebind() · 251d179b
      Laine Stump 提交于
      This function unbinds a device from its driver, then immediately
      rebinds it to its driver again. The code for this new function is just
      the 2nd half of virPCIDeviceBindWithDriverOverride(), so that
      function's 2nd half is replaced with a call to virPCIDeviceRebind().
      251d179b
    • L
      util: make virPCIGetDeviceAddressFromSysfsLink() public · 9a238c16
      Laine Stump 提交于
      This function will be useful in virnetdev.c, so promote it from static.
      9a238c16
    • L
      util: change virPCIGetNetName() to not return error if device has no net name · d6ee56d7
      Laine Stump 提交于
      ...and cleanup the callers to report it when it *is* an error.
      
      In many cases It's useful for virPCIGetNetName() to not log an error
      and simply return a NULL pointer when the given device isn't bound to
      a net driver (e.g. we're looking at a VF that is permanently bound to
      vfio-pci). The existing code would silently return an error in this
      case, which could eventually lead to the dreaded "An error occurred
      but the cause is unknown" log message.
      
      This patch changes virPCIGetNetName() to still return success if the
      device simply isn't bound to a net driver, and adjusts all the callers
      that require a non-null netname to check for that condition and log an
      error when it happens.
      d6ee56d7
    • L
      util: make virMacAddrParse more versatile · 30b07a42
      Laine Stump 提交于
      Previously the MAC address text was required to be terminated with a
      NULL. After this, it can be terminated with a space or any control
      character.
      30b07a42
    • L
      util: eliminate useless local variable · 606a0133
      Laine Stump 提交于
      vf in virNetDevMacVLanDeleteWithVPortProfile() is initialized to -1
      and never set. It's not set for a good reason - because it doesn't
      make sense during macvtap device setup to refer to a VF device as
      "PF:VF#". This patch replaces the two uses of "vf" with "-1", and
      removes the local variable, so that it's more clear we are always
      calling the utility functions with vf set to -1.
      606a0133
    • L
      util: use cleanup label consistently in virHostdevNetConfigReplace() · 19c5db74
      Laine Stump 提交于
      This will make an upcoming functional change more straightforward.
      19c5db74
    • L
      util: remove unused args from virNetDevSetVfConfig() · 0a583c26
      Laine Stump 提交于
      This function is only called in two places, and the ifindex,
      nltarget_kernel, and getPidFunc args are never used (and never will
      be).
      
      ifindex - we always know the name of the device, and never know the
      ifindex - if we really did need the ifindex we would have to get it
      from the name using virNetDevGetIndex(). In practice, we just send -1
      to virNetDevSetVfConfig(), which doesn't bother to learn the real
      ifindex (you only need a name *or* an ifindex for the netlink command
      to succeed, not both).
      
      nltarget_kernel - messages to set the config of an SRIOV VF will
      always go to netlink in the kernel, not to another user process, so
      this arg is always true (there are other uses of netlink messages
      where the message might need to go to another user process, but never
      in the case of RTM_SETLINK for SRIOV).
      
      getPidFunc - this arg is only used if nltarget_kernel is false, and it
      never is.
      
      None of this has any functional effect, it just makes it easier to
      follow what's happening when virNetDevSetVfConfig() is called.
      0a583c26
    • L
      util: permit querying a VF MAC address or VLAN tag by itself · 176229dd
      Laine Stump 提交于
      virNetDevParseVfConfig() assumed that both the MAC address and VLAN
      tag pointers were valid, so even if you only wanted one or the other,
      you would need a variable to hold the returned value for both. This
      patch checks each for a NULL pointer before filling it in.
      176229dd
  2. 23 3月, 2017 19 次提交
  3. 22 3月, 2017 4 次提交
  4. 16 3月, 2017 2 次提交
    • M
      virTimeBackOffWait: Avoid long periods of sleep · 67dcb797
      Michal Privoznik 提交于
      While connecting to qemu monitor, the first thing we do is wait
      for it to show up. However, we are doing it with some timeout to
      avoid indefinite waits (e.g. when qemu doesn't create the monitor
      socket at all). After beaa447a we are using exponential back
      off timeout meaning, after the first connection attempt we wait
      1ms, then 2ms, then 4 and so on.  This allows us to bring down
      wait time for small domains where qemu initializes quickly.
      However, on the other end of this scale are some domains with
      huge amounts of guest memory. Now imagine that we've gotten up to
      wait time of 15 seconds. The next one is going to be 30 seconds,
      and the one after that whole minute. Well, okay - with current
      code we are not going to wait longer than 30 seconds in total,
      but this is going to change in the next commit.
      
      The exponential back off is usable only for first few iterations.
      Then it needs to be caped (one second was chosen as the limit)
      and switch to constant wait time.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      67dcb797
    • J
      util: Rename virFileWaitForDevices · 97e0d3c3
      John Ferlan 提交于
      The function is actually in virutil.c, but prototyped in virfile.h.
      This patch fixes that by renaming the function to virWaitForDevices,
      adding the prototype in virutil.h and libvirt_private.syms, and then
      changing the callers to use the new name.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      97e0d3c3
  5. 08 3月, 2017 7 次提交