1. 09 1月, 2017 4 次提交
    • D
      f1e48297
    • D
      lxc: ensure libvirt_lxc and qemu-nbd move into systemd machine slice · 44f79a0b
      Daniel P. Berrange 提交于
      Currently when spawning containers with systemd, the container PID 1
      will get moved into the systemd machine slice. Libvirt then manually
      moves the libvirt_lxc and qemu-nbd processes into the cgroups associated
      with the slice, but skips the systemd controller cgroup. This means that
      from systemd's POV, libvirt_lxc and qemu-nbd are still part of the
      libvirtd.service unit.
      
      On systemctl daemon-reload, it will notice that libvirt_lxc & qemu-nbd
      are in the libvirtd.service unit for the systemd controller, but in the
      machine cgroups for resources. Systemd will thus move them back into
      the libvirtd.service resource cgroups next time libvirtd is restarted.
      This causes libvirtd to kill off the container due to incorrect cgroup
      placement.
      
      The solution is to ensure that when moving libvirt_lxc & qemu-nbd, we
      also move the systemd cgroup controller placement. Normally this is
      not something we ever want todo, but this is a special case as we are
      intentionally wanting to move them to a different systemd unit.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      44f79a0b
    • M
      security_selinux: s/virSecuritySELinuxSecurity/virSecuritySELinux/ · 65fb0b79
      Michal Privoznik 提交于
      It doesn't make much sense to have two different prefix for
      functions within the same driver.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      65fb0b79
    • M
      virutil: Provide non-linux impl for virGetFCHostNameByFabricWWN · 981d9790
      Michal Privoznik 提交于
      Currently, there's only linux implementation for
      virGetFCHostNameByFabricWWN(). Since the symbol is exported in
      our private symbols we ought to have implementation for other
      platforms too. This also triggers compilation error on FreeBSD:
      
      ../src/.libs/libvirt_driver_storage_impl.a(libvirt_driver_storage_impl_la-storage_backend_scsi.o): In function `createVport':
      /usr/home/jenkins/libvirt-master/systems/libvirt-freebsd/build/src/../../src/storage/storage_backend_scsi.c:740: undefined reference to `virGetFCHostNameByFabricWWN'
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      981d9790
  2. 07 1月, 2017 8 次提交
    • C
      virsh: Fix grammar - s/rather then/rather than · 96b1f091
      Chen Hanxiao 提交于
      Signed-off-by: NChen Hanxiao <chenhanxiao@gmail.com>
      96b1f091
    • M
      tests: Add "no-kvm-pit-device" testcase · 245d9ba2
      Maxim Nestratov 提交于
      Add a test case for when the QEMU_CAPS_NO_KVM_PIT capability is set.
      This capability is mutually exclusive to QEMU_CAPS_KVM_PIT_TICK_POLICY
      and results in the same output regardless of whether "discard" or
      "delay" was specified in the guest XML for 'tickpolicy'.
      Signed-off-by: NMaxim Nestratov <mnestratov@virtuozzo.com>
      245d9ba2
    • M
      qemu: Allow to specify pit timer tick policy=discard · af78cb04
      Maxim Nestratov 提交于
      Separate out the "policy=discard" into it's own specific
      qemu command line.
      
      We'll rename "kvm-pit-device" test case to be "kvm-pit-discard"
      since it has the syntax we'd be using.
      Signed-off-by: NMaxim Nestratov <mnestratov@virtuozzo.com>
      af78cb04
    • M
      qemu: Fix pit timer tick policy=delay · ef5c8bb4
      Maxim Nestratov 提交于
      By a mistake, for the VIR_DOMAIN_TIMER_TICKPOLICY_DELAY qemu
      command line creation, 'discard' was used instead of 'delay'
      in commit id '1569fa14'.
      
      Test "kvm-pit-delay" is fixed accordingly to show the correct
      option being generated.
      
      Remove the (now) redundant kvm-pit-device tests. As it turns
      out there is no need to specify both QEMU_CAPS_NO_KVM_PIT and
      QEMU_CAPS_KVM_PIT_TICK_POLICY since they are mutually exclusive
      and "kvm-pit-device" becomes just the same as "kvm-pit-delay".
      Signed-off-by: NMaxim Nestratov <mnestratov@virtuozzo.com>
      ef5c8bb4
    • J
      iscsi: Add parent wwnn/wwpn or fabric capability for createVport · 78be2e8b
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1349696
      
      As it turns out using only the 'parent' to achieve the goal of a
      consistent vHBA parent has issues with reboots where the scsi_hostX
      parent could change to scsi_hostY causing either failure to create
      the vHBA or usage of the wrong HBA for our vHBA.
      
      Thus add the ability to search for the "parent" by the parent wwnn/
      wwpn values or just a fabric_name if someone only cares to ensure
      usage of the same SAN for the vHBA.
      78be2e8b
    • J
      util: Introduce virGetFCHostNameByFabricWWN · 8366cb0a
      John Ferlan 提交于
      Create a utility routine in order to read the scsi_host fabric_name files
      looking for a match to a passed fabric_name
      8366cb0a
    • J
      conf: Add more fchost search fields for storage pool vHBA creation · bb74a7ff
      John Ferlan 提交于
      Add new fields to the fchost structure to allow creation of a vHBA via
      the storage pool when a parent_wwnn/parent_wwpn or parent_fabric_wwn is
      supplied in the storage pool XML.
      bb74a7ff
    • J
      nodedev: Add the ability to create vHBA by parent wwnn/wwpn or fabric_wwn · 2b13361b
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1349696
      
      When creating a vHBA, the process is to feed XML to nodeDeviceCreateXML
      that lists the <parent> scsi_hostX to use to create the vHBA. However,
      between reboots, it's possible that the <parent> changes its scsi_hostX
      to scsi_hostY and saved XML to perform the creation will either fail or
      create a vHBA using the wrong parent.
      
      So add the ability to provide "wwnn" and "wwpn" or "fabric_wwn" to
      the <parent> instead of a name of the scsi_hostN that is the parent.
      The allowed XML will thus be:
      
        <parent>scsi_host3</parent>  (current)
      
      or
      
        <parent wwnn='$WWNN' wwpn='$WWPN'/>
      
      or
      
        <parent fabric_wwn='$WWNN'/>
      
      Using the wwnn/wwpn or fabric_wwn ensures the same 'scsi_hostN' is
      selected between hardware reconfigs or host reboots. The fabric_wwn
      Using the wwnn/wwpn pair will provide the most specific search option,
      while fabric_wwn will at least ensure usage of the same SAN, but maybe
      not the same scsi_hostN.
      
      This patch will add the new fields to the nodedev.rng for input purposes
      only since the input XML is essentially thrown away, no need to Format
      the values since they'd already be printed as part of the scsi_host
      data block.
      
      New API virNodeDeviceGetParentHostByWWNs will take the parent "wwnn" and
      "wwpn" in order to search the list of devices for matching capability
      data fields wwnn and wwpn.
      
      New API virNodeDeviceGetParentHostByFabricWWN will take the parent "fabric_wwn"
      in order to search the list of devices for matching capability data field
      fabric_wwn.
      2b13361b
  3. 06 1月, 2017 8 次提交
  4. 05 1月, 2017 14 次提交
  5. 04 1月, 2017 6 次提交
    • P
      qemu: snapshot: Resume VM after live snapshot · 2e86c081
      Peter Krempa 提交于
      Commit 4b951d1e missed the fact that the
      VM needs to be resumed after a live external checkpoint (memory
      snapshot) where the cpus would be paused by the migration rather than
      libvirt.
      2e86c081
    • A
      HACKING: Reduce vertical whitespace · 6488a6c6
      Andrea Bolognani 提交于
      When generating the plain text version of the contributor
      guidelines we add a ludicrous amount of vertical whitespace
      in some spots. Tweak the XSLT stylesheet and regenerate the
      now much better looking file.
      6488a6c6
    • M
      qemuDomainCreateDevice: Be more careful about device path · dd78da09
      Michal Privoznik 提交于
      Again, not something that I'd hit, but there is a chance in
      theory that this might bite us. Currently the way we decide
      whether or not to create /dev entry for a device is by marching
      first four characters of path with "/dev". This might be not
      enough. Just imagine somebody has a disk image stored under
      "/devil/path/to/disk". We ought to be matching against "/dev/".
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      dd78da09
    • M
      qemuDomainAttachDeviceMknodHelper: Don't unlink() so often · ce01a2b1
      Michal Privoznik 提交于
      Not that I'd encounter any bug here, but the code doesn't look
      100% correct. Imagine, somebody is trying to attach a device to a
      domain, and the device's /dev entry already exists in the qemu
      namespace. This is handled gracefully and the control continues
      with setting up ACLs and calling security manager to set up
      labels. Now, if any of these steps fail, control jump on the
      'cleanup' label and unlink() the file straight away. Even when it
      was not us who created the file in the first place. This can be
      possibly dangerous.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      ce01a2b1
    • M
      qemu: Handle EEXIST gracefully in qemuDomainCreateDevice · 3aae99fe
      Michal Privoznik 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1406837
      
      Imagine you have a domain configured in such way that you are
      assigning two PCI devices that fall into the same IOMMU group.
      With mount namespace enabled what happens is that for the first
      PCI device corresponding /dev/vfio/X entry is created and when
      the code tries to do the same for the second mknod() fails as
      /dev/vfio/X already exists:
      
      2016-12-21 14:40:45.648+0000: 24681: error :
      qemuProcessReportLogError:1792 : internal error: Process exited
      prior to exec: libvirt: QEMU Driver error : Failed to make device
      /var/run/libvirt/qemu/windoze.dev//vfio/22: File exists
      
      Worse, by default there are some devices that are created in the
      namespace regardless of domain configuration (e.g. /dev/null,
      /dev/urandom, etc.). If one of them is set as backend for some
      guest device (e.g. rng, chardev, etc.) it's the same story as
      described above.
      
      Weirdly, in attach code this is already handled.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      3aae99fe
    • M
      networkxml2conftest: Rename outxml to outconf · 8388b1c8
      Martin Kletzander 提交于
      Just a name, I know, but it bothered me a lot since it does not refer
      to XML.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      8388b1c8