1. 08 2月, 2017 11 次提交
    • M
      qemuDomainNamespace{Setup,Teardown}Disk: Don't pass pointer to full disk · 18ce9d13
      Michal Privoznik 提交于
      These functions do not need to see the whole virDomainDiskDef.
      Moreover, they are going to be called from places where we don't
      have access to the full disk definition. Sticking with
      virStorageSource is more than enough.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      18ce9d13
    • M
      qemuDomainNamespaceSetupDisk: Drop useless @src variable · 76d491ef
      Michal Privoznik 提交于
      Since its introduction in 81df2150 this variable was never
      used.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      76d491ef
    • M
      qemu_domain: Don't pass virDomainDeviceDefPtr to ns helpers · 8dc867e9
      Michal Privoznik 提交于
      There is no need for this. None of the namespace helpers uses it.
      Historically it was used when calling secdriver APIs, but we
      don't to that anymore.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      8dc867e9
    • M
      qemu_security: Drop qemuSecuritySetRestoreAllLabelData struct · 848dbe19
      Michal Privoznik 提交于
      This struct is unused after 095f042e.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      848dbe19
    • M
      qemuDomainAttachSCSIVHostDevice: manage /dev entry · 45599e40
      Michal Privoznik 提交于
      Again, one missed bit. This time without this commit there is no
      /dev entry in the namespace of the qemu process when attaching
      vhost SCSI device.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      45599e40
    • M
      qemuDomainAttachSCSIVHostDevice: Prefer qemuSecurity wrappers · 7d93a885
      Michal Privoznik 提交于
      Since we have qemuSecurity wrappers over
      virSecurityManagerSetHostdevLabel and
      virSecurityManagerRestoreHostdevLabel we ought to use them
      instead of calling secdriver APIs directly.  Without those
      wrappers the labelling won't be done in the correct namespace
      and thus won't apply to the nodes seen by qemu itself.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      7d93a885
    • L
      qemu: propagate bridge MTU into qemu "host_mtu" option · 2841e675
      Laine Stump 提交于
      libvirt was able to set the host_mtu option when an MTU was explicitly
      given in the interface config (with <mtu size='n'/>), set the MTU of a
      libvirt network in the network config (with the same named
      subelement), and would automatically set the MTU of any tap device to
      the MTU of the network.
      
      This patch ties that all together (for networks based on tap devices
      and either Linux host bridges or OVS bridges) by learning the MTU of
      the network (i.e. the bridge) during qemuInterfaceBridgeConnect(), and
      returning that value so that it can then be passed to
      qemuBuildNicDevStr(); qemuBuildNicDevStr() then sets host_mtu in the
      interface's commandline options.
      
      The result is that a higher MTU for all guests connecting to a
      particular network will be plumbed top to bottom by simply changing
      the MTU of the network (in libvirt's config for libvirt-managed
      networks, or directly on the bridge device for simple host bridges or
      OVS bridges managed outside of libvirt).
      
      One question I have about this - it occurred to me that in the case of
      migrating a guest from a host with an older libvirt to one with a
      newer libvirt, the guest may have *not* had the host_mtu option on the
      older machine, but *will* have it on the newer machine. I'm curious if
      this could lead to incompatibilities between source and destination (I
      guess it all depends on whether or not the setting of host_mtu has a
      practical effect on a guest that is already running - Maxime?)
      
      Likewise, we could run into problems when migrating from a newer
      libvirt to older libvirt - The guest would have been told of the
      higher MTU on the newer libvirt, then migrated to a host that didn't
      understand <mtu size='blah'/>. (If this really is a problem, it would
      be a problem with or without the current patch).
      2841e675
    • L
      c0f70686
    • L
      conf: support configuring mtu size in a virtual network · 68a42bf6
      Laine Stump 提交于
      Example:
      
        <network>
           ...
           <mtu size='9000'/>
           ...
      
      If mtu is unset, it's assumed that we want the default for whatever is
      the underlying transport (usually this is 1500).
      
      This setting isn't yet wired in, so it will have no effect.
      
      This partially resolves: https://bugzilla.redhat.com/1224348
      68a42bf6
    • L
      util: add MTU arg to virNetDevTapCreateInBridgePort() · dd8ac030
      Laine Stump 提交于
      virNetDevTapCreateInBridgePort() has always set the new tap device to
      the current MTU of the bridge it's being attached to. There is one
      case where we will want to set the new tap device to a different
      (usually larger) MTU - if that's done with the very first device added
      to the bridge, the bridge's MTU will be set to the device's MTU. This
      patch allows for that possibility by adding "int mtu" to the arg list
      for virNetDevTapCreateInBridgePort(), but all callers are sending -1,
      so it doesn't yet have any effect.
      
      Since the requested MTU isn't necessarily what is used in the end (for
      example, if there is no MTU requested, the tap device will be set to
      the current MTU of the bridge), and the hypervisor may want to know
      the actual MTU used, we also return the actual MTU to the caller (if
      actualMTU is non-NULL).
      dd8ac030
    • A
      qemu: Forbid <memoryBacking><locked> without <memtune><hard_limit> · c2e60ad0
      Andrea Bolognani 提交于
      In order for memory locking to work, the hard limit on memory
      locking (and usage) has to be set appropriately by the user.
      
      The documentation mentions the requirement already: with this
      patch, it's going to be enforced by runtime checks as well,
      by forbidding a non-compliant guest from being defined as well
      as edited and started.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1316774
      c2e60ad0
  2. 07 2月, 2017 12 次提交
  3. 04 2月, 2017 2 次提交
    • J
      util: Fix domain object leaks on closecallbacks · 48ad6009
      John Ferlan 提交于
      Originally/discovered proposed by "Wang King <king.wang@huawei.com>"
      
      When the virCloseCallbacksSet is first called, it increments the refcnt
      on the domain object to ensure it doesn't get deleted before the callback
      is called. The refcnt would be decremented in virCloseCallbacksUnset once
      the entry is removed from the closeCallbacks has table.
      
      When (mostly) normal shutdown occurs, the qemuProcessStop will end up
      calling qemuProcessAutoDestroyRemove and will remove the callback from
      the list and hash table normally and decrement the refcnt.
      
      However, when qemuConnectClose calls virCloseCallbacksRun, it will scan
      the (locked) closeCallbacks list for matching domain and callback function.
      If an entry is found, it will be removed from the closeCallbacks list and
      placed into a lookaside list to be processed when the closeCallbacks lock
      is dropped. The callback function (e.g. qemuProcessAutoDestroy) is called
      and will run qemuProcessStop. That code will fail to find the callback
      in the list when qemuProcessAutoDestroyRemove is called and thus not decrement
      the domain refcnt. Instead since the entry isn't found the code will just
      return (mostly) harmlessly.
      
      This patch will resolve the issue by taking another ref during the
      search UUID process during virCloseCallackRun, decrementing the refcnt
      taken by virCloseCallbacksSet, calling the callback routine and returning
      overwriting the vm (since it could return NULL). Finally, it will call the
      virDomainObjEndAPI to lower the refcnt and remove the lock taken during
      the search UUID processing. This may cause the vm to be destroyed.
      48ad6009
    • D
      virtlockd: fix systemd unit file dependancies · aed0850e
      Daniel P. Berrange 提交于
      After deploying virtlogd by default we identified a number of
      mistakes in the systemd unit file. virtlockd's relationship
      to libvirtd is the same as virtlogd, so we must apply the
      same unit file fixes to virtlockd
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      aed0850e
  4. 03 2月, 2017 1 次提交
    • J
      libxl: fix dom0 autoballooning with Xen 4.8 · f86a7a83
      Jim Fehlig 提交于
      xen.git commit 57f8b13c changed several of the libxl memory
      get/set functions to take 64 bit parameters. The libvirt
      libxl driver still uses uint32_t variables for these various
      parameters, which is particularly problematic for the
      libxl_set_memory_target() function.
      
      When dom0 autoballooning is enabled, libvirt (like xl) determines
      the memory needed to start a domain and the memory available. If
      memory available is less than memory needed, dom0 is ballooned
      down by passing a negative value to libxl_set_memory_target()
      'target_memkb' parameter. Prior to xen.git commit 57f8b13c,
      'target_memkb' was an int32_t. Subtracting a larger uint32 from
      a smaller uint32 and assigning it to int32 resulted in a negative
      number. After commit 57f8b13c, the same subtraction is widened
      to a int64, resulting in a large positive number. The simple
      fix taken by this patch is to assign the difference of the
      uint32 values to a temporary int32 variable, which is then
      passed to 'target_memkb' parameter of libxl_set_memory_target().
      
      Note that it is undesirable to change libvirt to use 64 bit
      variables since it requires setting LIBXL_API_VERSION to 0x040800.
      Currently libvirt supports LIBXL_API_VERSION >= 0x040400,
      essentially Xen >= 4.4.
      f86a7a83
  5. 01 2月, 2017 3 次提交
  6. 31 1月, 2017 11 次提交