[libvirt] [PATCH 07/13] qemu: Add hotpluging support for PCI devices on S390 guests
Cornelia Huck
cohuck at redhat.com
Tue May 29 09:04:15 UTC 2018
On Mon, 28 May 2018 16:26:57 +0800
Xiao Feng Ren <renxiaof at linux.vnet.ibm.com> wrote:
> On 5/25/2018 6:22 PM, Bjoern Walk wrote:
> > Cornelia Huck <cohuck at redhat.com> [2018-05-24, 06:25PM +0200]:
> >> On Thu, 24 May 2018 14:24:32 +0200
> >> Xiao Feng Ren <renxiaof at linux.vnet.ibm.com> wrote:
> >>
> >>> From: Yi Min Zhao <zyimin at linux.ibm.com>
> >>>
> >>> This commit adds hotplug support for PCI devices on S390 guests.
> >>> There's no need to implement hot unplug for zPCI as QEMU implements
> >>> an unplug callback which will unplug both PCI and zPCI device in a
> >>> cascaded way.
> >>> Currently, the following PCI devices are supported:
> >>> virtio-blk-pci
> >>> virtio-net-pci
> >>> virtio-rng-pci
> >>> virtio-input-host-pci
> >>> virtio-keyboard-pci
> >>> virtio-mouse-pci
> >>> virtio-tablet-pci
> >>> vfio-pci
> >>> Shmem device
> >>> SCSIVhost device
> >> Hm, how did you arrive at this list? Is it 'anything that uses msi-x'?
> > I guess it's just any device that libvirt actually supports hotplug for,
> > with a few exceptions (cf. patch 3 and 6). Not familiar wuth msi-x.
>
> The list should be the devices that support MSI-X and have realized the
> hotplug in qemu,
> we support the hotplug for them in the libvirt. So the list will be
> updated to:
>
> virtio-blk-pci
> virtio-net-pci
> virtio-input-host-pci
> virtio-keyboard-pci
> virtio-mouse-pci
> virtio-tablet-pci
> vfio-pci
> SCSIVhost device
Ok, that makes sense.
I also checked that libvirt only allows setting the vectors property
for virtio-serial and shmem (vectors == 0 turns msi-x off), so that
should be fine.
>
> As the model of Shmem is not support in qemu, the rng device doesn't
> support MSI-X. So remove them.
So, should qemu add support for msi-x with virtio-rng-pci in the
future, we'd want to update libvirt as well, correct?
>
>
> In addition, the bug found need to be fixed for the hotplug of tablet,
> in the virDomainDeviceIsUSB()
> if ((t == VIR_DOMAIN_DEVICE_DISK &&
> dev->data.disk->bus == VIR_DOMAIN_DISK_BUS_USB) ||
> (t == VIR_DOMAIN_DEVICE_INPUT &&
> dev->data.input->type == VIR_DOMAIN_INPUT_BUS_USB) ||
> ---------->dev->data.input->bus == VIR_DOMAIN_INPUT_BUS_USB
> (t == VIR_DOMAIN_DEVICE_HOSTDEV &&
> I will send the fix if this bug is agreed.
>
More information about the libvir-list
mailing list