[PATCH 0/2] specify the accelerator type using "-accel" parameter
Hyman
huangy81 at chinatelecom.cn
Thu Jan 21 02:21:00 UTC 2021
> Ping
Hi!
I think this series still make sense, even though the dirty ring patch
haven't been merged.
Using the -accel to specify accelerator is more graceful and more
feature such as kernel-irqchip,kvm-shadow-mem,tb-size,etc, can be
specified via domain xml if we continue doing this work, rather than
hard-writing code or using QEMU command line.
Thanks!
在 2021/1/13 23:06, huangy81 at chinatelecom.cn 写道:
> From: Hyman <huangy81 at chinatelecom.cn>
>
> This patchset aims to support dirty ring feature which has been introduced
> in kernel:
> https://lore.kernel.org/lkml/8b3f68dd-c61c-16a0-2077-0a5d3d57a357@redhat.com/
>
> The QEMU patchset is also being applied for merge, the review may be under
> the way:
> https://lore.kernel.org/qemu-devel/20210108164601.406146-1-peterx@redhat.com/
>
> Since QEMU enable the dirty ring feature by specifying the "-accel" sub-parameter.
> Libvirt use "-machine accel=xxx" option to specify the type of accelerator by
> default, which is conflict with QEMU. Either the Libvirt or QEMU may compromise,
>
> According to the Paolo Bonzini's patient and prompt explanation:
> https://lore.kernel.org/qemu-devel/3aa73987-40e8-3619-0723-9f17f73850bd@redhat.com/
> We'd like to have Libvirt switch to "-accel xxx" instead, cause the "-machine"
> options for accelerator are legacy and now there is a better mechanism.
>
> This two patches are kind of standalone so maybe it cound be merged in advance
> anyway. And the dirty-ring-support patch is reviewed under the way. Once the QEMU
> patchset is merged, i'll ping the libvir-list and apply for merge the remainding
> patch. The following are details:
> https://www.redhat.com/archives/libvir-list/2021-January/msg00660.html
>
> The 2 patches do the following things:
> 1. introduce QEMU_CAPS_ACCEL so the the next patch can use it to choose the right
> option when specifying the accelerator type.
>
> 2. switch the option "-machine accel=xxx" to "-accel xxx" when specifying accelerator
> type once libvirt build QEMU command line, so that the next patch can build
> QEMU command line for accelerator type using "-accel xxx" directly.
>
> Please review, Thanks!
>
> Best Regards !
>
> Hyman (2):
> qemu_capabilities: Introduce QEMU_CAPS_ACCEL
> qemu: use "-accel" option to specify accelerator instead of "-machine"
>
> src/qemu/qemu_capabilities.c | 2 +
> src/qemu/qemu_capabilities.h | 1 +
> src/qemu/qemu_command.c | 131 ++++++++++++++----
> .../caps_2.10.0.aarch64.xml | 1 +
> .../caps_2.10.0.ppc64.xml | 1 +
> .../caps_2.10.0.s390x.xml | 1 +
> .../caps_2.10.0.x86_64.xml | 1 +
> .../caps_2.11.0.s390x.xml | 1 +
> .../caps_2.11.0.x86_64.xml | 1 +
> .../caps_2.12.0.aarch64.xml | 1 +
> .../caps_2.12.0.ppc64.xml | 1 +
> .../caps_2.12.0.s390x.xml | 1 +
> .../caps_2.12.0.x86_64.xml | 1 +
> .../qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 +
> .../qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 +
> .../caps_2.9.0.x86_64.xml | 1 +
> .../qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 +
> .../caps_3.0.0.riscv32.xml | 1 +
> .../caps_3.0.0.riscv64.xml | 1 +
> .../qemucapabilitiesdata/caps_3.0.0.s390x.xml | 1 +
> .../caps_3.0.0.x86_64.xml | 1 +
> .../qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 +
> .../caps_3.1.0.x86_64.xml | 1 +
> .../caps_4.0.0.aarch64.xml | 1 +
> .../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 +
> .../caps_4.0.0.riscv32.xml | 1 +
> .../caps_4.0.0.riscv64.xml | 1 +
> .../qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 +
> .../caps_4.0.0.x86_64.xml | 1 +
> .../caps_4.1.0.x86_64.xml | 1 +
> .../caps_4.2.0.aarch64.xml | 1 +
> .../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 +
> .../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 +
> .../caps_4.2.0.x86_64.xml | 1 +
> .../caps_5.0.0.aarch64.xml | 1 +
> .../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 +
> .../caps_5.0.0.riscv64.xml | 1 +
> .../caps_5.0.0.x86_64.xml | 1 +
> .../qemucapabilitiesdata/caps_5.1.0.sparc.xml | 1 +
> .../caps_5.1.0.x86_64.xml | 1 +
> .../caps_5.2.0.aarch64.xml | 1 +
> .../qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 +
> .../caps_5.2.0.riscv64.xml | 1 +
> .../qemucapabilitiesdata/caps_5.2.0.s390x.xml | 1 +
> .../caps_5.2.0.x86_64.xml | 1 +
> ...fault-cpu-kvm-virt-4.2.aarch64-latest.args | 3 +-
> ...fault-cpu-tcg-virt-4.2.aarch64-latest.args | 3 +-
> .../aarch64-features-sve.aarch64-latest.args | 3 +-
> ...arch64-os-firmware-efi.aarch64-latest.args | 3 +-
> .../aarch64-virt-graphics.aarch64-latest.args | 3 +-
> .../aarch64-virt-headless.aarch64-latest.args | 3 +-
> .../blkdeviotune-group-num.x86_64-4.1.0.args | 3 +-
> .../blkdeviotune-group-num.x86_64-latest.args | 3 +-
> .../blkdeviotune-max-length.x86_64-4.1.0.args | 3 +-
> ...blkdeviotune-max-length.x86_64-latest.args | 3 +-
> .../blkdeviotune-max.x86_64-4.1.0.args | 3 +-
> .../blkdeviotune-max.x86_64-latest.args | 3 +-
> .../channel-unix-guestfwd.x86_64-latest.args | 3 +-
> .../clock-timer-armvtimer.aarch64-latest.args | 3 +-
> .../console-virtio-unix.x86_64-latest.args | 3 +-
> .../controller-virtio-scsi.x86_64-latest.args | 3 +-
> ...u-Icelake-Server-pconfig.x86_64-3.1.0.args | 3 +-
> ...-Icelake-Server-pconfig.x86_64-latest.args | 3 +-
> .../cpu-host-model-cmt.x86_64-4.0.0.args | 3 +-
> .../cpu-translation.x86_64-4.0.0.args | 3 +-
> .../cpu-translation.x86_64-latest.args | 3 +-
> .../cpu-tsc-frequency.x86_64-4.0.0.args | 3 +-
> .../cpu-tsc-high-frequency.x86_64-latest.args | 3 +-
> .../cputune-cpuset-big-id.x86_64-latest.args | 3 +-
> ...ult-video-type-aarch64.aarch64-latest.args | 3 +-
> ...default-video-type-ppc64.ppc64-latest.args | 3 +-
> ...ult-video-type-riscv64.riscv64-latest.args | 3 +-
> ...default-video-type-s390x.s390x-latest.args | 3 +-
> .../disk-aio-io_uring.x86_64-latest.args | 3 +-
> .../disk-aio.x86_64-2.12.0.args | 3 +-
> .../disk-aio.x86_64-latest.args | 3 +-
> .../disk-arm-virtio-sd.aarch64-4.0.0.args | 3 +-
> .../disk-arm-virtio-sd.aarch64-latest.args | 3 +-
> ...-backing-chains-noindex.x86_64-2.12.0.args | 3 +-
> ...-backing-chains-noindex.x86_64-latest.args | 3 +-
> .../disk-cache.x86_64-2.12.0.args | 3 +-
> .../disk-cache.x86_64-latest.args | 3 +-
> .../disk-cdrom-bus-other.x86_64-latest.args | 3 +-
> ...m-empty-network-invalid.x86_64-latest.args | 3 +-
> .../disk-cdrom-network.x86_64-2.12.0.args | 3 +-
> .../disk-cdrom-network.x86_64-latest.args | 3 +-
> .../disk-cdrom-tray.x86_64-2.12.0.args | 3 +-
> .../disk-cdrom-tray.x86_64-latest.args | 3 +-
> .../disk-cdrom.x86_64-2.12.0.args | 3 +-
> .../disk-cdrom.x86_64-latest.args | 3 +-
> .../disk-copy_on_read.x86_64-2.12.0.args | 3 +-
> .../disk-copy_on_read.x86_64-latest.args | 3 +-
> .../disk-detect-zeroes.x86_64-2.12.0.args | 3 +-
> .../disk-detect-zeroes.x86_64-latest.args | 3 +-
> .../disk-discard.x86_64-4.1.0.args | 3 +-
> .../disk-discard.x86_64-latest.args | 3 +-
> .../disk-error-policy-s390x.s390x-2.12.0.args | 3 +-
> .../disk-error-policy-s390x.s390x-latest.args | 3 +-
> .../disk-error-policy.x86_64-2.12.0.args | 3 +-
> .../disk-error-policy.x86_64-latest.args | 3 +-
> .../disk-floppy-q35-2_11.x86_64-2.12.0.args | 3 +-
> .../disk-floppy-q35-2_11.x86_64-latest.args | 3 +-
> .../disk-floppy-q35-2_9.x86_64-2.12.0.args | 3 +-
> .../disk-floppy-q35-2_9.x86_64-latest.args | 3 +-
> .../disk-floppy.x86_64-2.12.0.args | 3 +-
> .../disk-floppy.x86_64-latest.args | 3 +-
> .../disk-metadata-cache.x86_64-latest.args | 3 +-
> .../disk-network-gluster.x86_64-2.12.0.args | 3 +-
> .../disk-network-gluster.x86_64-latest.args | 3 +-
> .../disk-network-http.x86_64-latest.args | 3 +-
> .../disk-network-iscsi.x86_64-2.12.0.args | 3 +-
> .../disk-network-iscsi.x86_64-latest.args | 3 +-
> .../disk-network-nbd.x86_64-2.12.0.args | 3 +-
> .../disk-network-nbd.x86_64-latest.args | 3 +-
> .../disk-network-nfs.x86_64-latest.args | 3 +-
> .../disk-network-rbd.x86_64-2.12.0.args | 3 +-
> .../disk-network-rbd.x86_64-latest.args | 3 +-
> .../disk-network-sheepdog.x86_64-2.12.0.args | 3 +-
> .../disk-network-sheepdog.x86_64-latest.args | 3 +-
> ...isk-network-source-auth.x86_64-2.12.0.args | 3 +-
> ...isk-network-source-auth.x86_64-latest.args | 3 +-
> ...isk-network-tlsx509-nbd.x86_64-2.12.0.args | 3 +-
> ...isk-network-tlsx509-nbd.x86_64-latest.args | 3 +-
> ...sk-network-tlsx509-vxhs.x86_64-2.12.0.args | 3 +-
> ...isk-network-tlsx509-vxhs.x86_64-5.0.0.args | 3 +-
> .../disk-network-tlsx509.x86_64-2.12.0.args | 3 +-
> .../disk-network-tlsx509.x86_64-latest.args | 3 +-
> .../disk-nvme.x86_64-latest.args | 3 +-
> .../disk-readonly-disk.x86_64-2.12.0.args | 3 +-
> .../disk-readonly-disk.x86_64-latest.args | 3 +-
> .../disk-scsi-device-auto.x86_64-latest.args | 3 +-
> .../disk-scsi.x86_64-latest.args | 3 +-
> .../disk-shared.x86_64-2.12.0.args | 3 +-
> .../disk-shared.x86_64-latest.args | 3 +-
> .../disk-slices.x86_64-latest.args | 3 +-
> .../disk-transient.x86_64-latest.args | 3 +-
> ...irtio-scsi-reservations.x86_64-2.12.0.args | 3 +-
> ...irtio-scsi-reservations.x86_64-latest.args | 3 +-
> .../eoi-disabled.x86_64-4.0.0.args | 3 +-
> .../eoi-disabled.x86_64-latest.args | 3 +-
> .../eoi-enabled.x86_64-4.0.0.args | 3 +-
> .../eoi-enabled.x86_64-latest.args | 3 +-
> .../fips-enabled.x86_64-5.1.0.args | 3 +-
> .../fips-enabled.x86_64-latest.args | 3 +-
> .../floppy-drive-fat.x86_64-2.12.0.args | 3 +-
> .../floppy-drive-fat.x86_64-latest.args | 3 +-
> .../fs9p-ccw.s390x-latest.args | 3 +-
> .../qemuxml2argvdata/fs9p.x86_64-latest.args | 3 +-
> .../genid-auto.x86_64-latest.args | 3 +-
> .../qemuxml2argvdata/genid.x86_64-latest.args | 3 +-
> ...egl-headless-rendernode.x86_64-latest.args | 3 +-
> .../graphics-egl-headless.x86_64-latest.args | 3 +-
> ...pice-gl-auto-rendernode.x86_64-latest.args | 3 +-
> ...graphics-vnc-tls-secret.x86_64-latest.args | 3 +-
> .../graphics-vnc-tls.x86_64-latest.args | 3 +-
> ...tdev-mdev-display-ramfb.x86_64-latest.args | 3 +-
> ...play-spice-egl-headless.x86_64-latest.args | 3 +-
> ...ev-display-spice-opengl.x86_64-latest.args | 3 +-
> ...isplay-vnc-egl-headless.x86_64-latest.args | 3 +-
> ...ostdev-mdev-display-vnc.x86_64-latest.args | 3 +-
> .../hostdev-scsi-lsi.x86_64-4.1.0.args | 3 +-
> .../hostdev-scsi-lsi.x86_64-latest.args | 3 +-
> ...hostdev-scsi-virtio-scsi.x86_64-4.1.0.args | 3 +-
> ...ostdev-scsi-virtio-scsi.x86_64-latest.args | 3 +-
> ...tdev-subsys-mdev-vfio-ap.s390x-latest.args | 3 +-
> ...ubsys-mdev-vfio-ccw-boot.s390x-latest.args | 3 +-
> .../hugepages-memaccess3.x86_64-latest.args | 3 +-
> .../hugepages-nvdimm.x86_64-latest.args | 3 +-
> .../hyperv-off.x86_64-4.0.0.args | 3 +-
> .../hyperv-off.x86_64-latest.args | 3 +-
> .../hyperv-panic.x86_64-4.0.0.args | 3 +-
> .../hyperv-panic.x86_64-latest.args | 3 +-
> .../hyperv-stimer-direct.x86_64-latest.args | 3 +-
> .../qemuxml2argvdata/hyperv.x86_64-4.0.0.args | 3 +-
> .../hyperv.x86_64-latest.args | 3 +-
> .../intel-iommu-aw-bits.x86_64-latest.args | 3 +-
> ...ntel-iommu-caching-mode.x86_64-latest.args | 3 +-
> ...ntel-iommu-device-iotlb.x86_64-latest.args | 3 +-
> .../intel-iommu-eim.x86_64-latest.args | 3 +-
> .../intel-iommu.x86_64-latest.args | 3 +-
> .../iommu-smmuv3.aarch64-latest.args | 3 +-
> ...othreads-virtio-scsi-ccw.s390x-latest.args | 3 +-
> ...threads-virtio-scsi-pci.x86_64-latest.args | 3 +-
> .../kvmclock+eoi-disabled.x86_64-4.0.0.args | 3 +-
> .../kvmclock+eoi-disabled.x86_64-latest.args | 3 +-
> ...v-missing-platform-info.x86_64-2.12.0.args | 3 +-
> .../launch-security-sev.x86_64-2.12.0.args | 3 +-
> ...luks-disks-source-qcow2.x86_64-latest.args | 3 +-
> ...memory-default-hugepage.x86_64-latest.args | 3 +-
> .../memfd-memory-numa.x86_64-latest.args | 3 +-
> ...y-hotplug-nvdimm-access.x86_64-latest.args | 3 +-
> ...ry-hotplug-nvdimm-align.x86_64-latest.args | 3 +-
> ...ry-hotplug-nvdimm-label.x86_64-latest.args | 3 +-
> ...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 3 +-
> ...hotplug-nvdimm-readonly.x86_64-latest.args | 3 +-
> .../memory-hotplug-nvdimm.x86_64-latest.args | 3 +-
> .../mlock-off.x86_64-3.0.0.args | 3 +-
> .../mlock-off.x86_64-latest.args | 3 +-
> .../mlock-on.x86_64-3.0.0.args | 3 +-
> .../mlock-on.x86_64-latest.args | 3 +-
> .../net-user.x86_64-4.0.0.args | 3 +-
> .../net-vdpa.x86_64-latest.args | 3 +-
> .../net-vhostuser.x86_64-latest.args | 3 +-
> .../numatune-hmat.x86_64-latest.args | 3 +-
> .../os-firmware-bios.x86_64-latest.args | 3 +-
> ...os-firmware-efi-secboot.x86_64-latest.args | 3 +-
> .../os-firmware-efi.x86_64-latest.args | 3 +-
> .../parallel-unix-chardev.x86_64-latest.args | 3 +-
> ...cie-root-port-nohotplug.x86_64-latest.args | 3 +-
> ...ault-cpu-kvm-pseries-2.7.ppc64-latest.args | 3 +-
> ...ault-cpu-kvm-pseries-3.1.ppc64-latest.args | 3 +-
> ...ault-cpu-kvm-pseries-4.2.ppc64-latest.args | 3 +-
> ...ault-cpu-tcg-pseries-2.7.ppc64-latest.args | 3 +-
> ...ault-cpu-tcg-pseries-3.1.ppc64-latest.args | 3 +-
> ...ault-cpu-tcg-pseries-4.2.ppc64-latest.args | 3 +-
> .../ppc64-pseries-graphics.ppc64-latest.args | 3 +-
> .../ppc64-pseries-headless.ppc64-latest.args | 3 +-
> .../ppc64-tpmproxy-single.ppc64-latest.args | 3 +-
> .../ppc64-tpmproxy-with-tpm.ppc64-latest.args | 3 +-
> .../pv-spinlock-disabled.x86_64-4.0.0.args | 3 +-
> .../pv-spinlock-disabled.x86_64-latest.args | 3 +-
> .../pv-spinlock-enabled.x86_64-4.0.0.args | 3 +-
> .../pv-spinlock-enabled.x86_64-latest.args | 3 +-
> .../qemu-ns.x86_64-4.0.0.args | 3 +-
> .../qemu-ns.x86_64-latest.args | 3 +-
> .../riscv64-virt-graphics.riscv64-latest.args | 3 +-
> .../riscv64-virt-headless.riscv64-latest.args | 3 +-
> ...t-cpu-kvm-ccw-virtio-2.7.s390x-latest.args | 3 +-
> ...t-cpu-kvm-ccw-virtio-4.2.s390x-latest.args | 3 +-
> ...t-cpu-tcg-ccw-virtio-2.7.s390x-latest.args | 3 +-
> ...t-cpu-tcg-ccw-virtio-4.2.s390x-latest.args | 3 +-
> .../s390x-ccw-graphics.s390x-latest.args | 3 +-
> .../s390x-ccw-headless.s390x-latest.args | 3 +-
> .../serial-unix-chardev.x86_64-latest.args | 3 +-
> ...rtcard-passthrough-unix.x86_64-latest.args | 3 +-
> .../tpm-emulator-spapr.ppc64-latest.args | 3 +-
> .../tpm-emulator-tpm2-enc.x86_64-latest.args | 3 +-
> ...pm-emulator-tpm2-pstate.x86_64-latest.args | 3 +-
> .../tpm-emulator-tpm2.x86_64-latest.args | 3 +-
> .../tpm-emulator.x86_64-latest.args | 3 +-
> .../tpm-passthrough-crb.x86_64-latest.args | 3 +-
> .../tpm-passthrough.x86_64-latest.args | 3 +-
> .../tseg-explicit-size.x86_64-latest.args | 3 +-
> .../usb-redir-unix.x86_64-latest.args | 3 +-
> ...vhost-user-fs-fd-memory.x86_64-latest.args | 3 +-
> ...vhost-user-fs-hugepages.x86_64-latest.args | 3 +-
> ...host-user-gpu-secondary.x86_64-latest.args | 3 +-
> .../vhost-user-vga.x86_64-latest.args | 3 +-
> .../vhost-vsock-auto.x86_64-latest.args | 3 +-
> .../vhost-vsock-ccw-auto.s390x-latest.args | 3 +-
> .../vhost-vsock-ccw.s390x-latest.args | 3 +-
> .../vhost-vsock.x86_64-latest.args | 3 +-
> ...eo-bochs-display-device.x86_64-latest.args | 3 +-
> ...video-qxl-device-vram64.x86_64-latest.args | 3 +-
> ...o-qxl-sec-device-vram64.x86_64-latest.args | 3 +-
> ...eo-ramfb-display-device.x86_64-latest.args | 3 +-
> .../virtio-9p-createmode.x86_64-latest.args | 3 +-
> .../virtio-9p-multidevs.x86_64-latest.args | 3 +-
> .../virtio-non-transitional.x86_64-3.1.0.args | 3 +-
> ...virtio-non-transitional.x86_64-latest.args | 3 +-
> ...-options-controller-ats.x86_64-latest.args | 3 +-
> ...ptions-controller-iommu.x86_64-latest.args | 3 +-
> ...tions-controller-packed.x86_64-latest.args | 3 +-
> ...virtio-options-disk-ats.x86_64-latest.args | 3 +-
> ...rtio-options-disk-iommu.x86_64-latest.args | 3 +-
> ...tio-options-disk-packed.x86_64-latest.args | 3 +-
> .../virtio-options-fs-ats.x86_64-latest.args | 3 +-
> ...virtio-options-fs-iommu.x86_64-latest.args | 3 +-
> ...irtio-options-fs-packed.x86_64-latest.args | 3 +-
> ...irtio-options-input-ats.x86_64-latest.args | 3 +-
> ...tio-options-input-iommu.x86_64-latest.args | 3 +-
> ...io-options-input-packed.x86_64-latest.args | 3 +-
> ...-options-memballoon-ats.x86_64-latest.args | 3 +-
> ...loon-freepage-reporting.x86_64-latest.args | 3 +-
> ...ptions-memballoon-iommu.x86_64-latest.args | 3 +-
> ...tions-memballoon-packed.x86_64-latest.args | 3 +-
> .../virtio-options-net-ats.x86_64-latest.args | 3 +-
> ...irtio-options-net-iommu.x86_64-latest.args | 3 +-
> ...rtio-options-net-packed.x86_64-latest.args | 3 +-
> .../virtio-options-rng-ats.x86_64-latest.args | 3 +-
> ...irtio-options-rng-iommu.x86_64-latest.args | 3 +-
> ...rtio-options-rng-packed.x86_64-latest.args | 3 +-
> ...irtio-options-video-ats.x86_64-latest.args | 3 +-
> ...tio-options-video-iommu.x86_64-latest.args | 3 +-
> ...io-options-video-packed.x86_64-latest.args | 3 +-
> .../virtio-options.x86_64-latest.args | 3 +-
> .../virtio-rng-builtin.x86_64-latest.args | 3 +-
> .../virtio-rng-egd-unix.x86_64-latest.args | 3 +-
> .../virtio-transitional.x86_64-3.1.0.args | 3 +-
> .../virtio-transitional.x86_64-latest.args | 3 +-
> ...-default-cpu-kvm-pc-4.2.x86_64-latest.args | 3 +-
> ...default-cpu-kvm-q35-4.2.x86_64-latest.args | 3 +-
> ...-default-cpu-tcg-pc-4.2.x86_64-latest.args | 3 +-
> ...default-cpu-tcg-q35-4.2.x86_64-latest.args | 3 +-
> .../x86_64-pc-graphics.x86_64-latest.args | 3 +-
> .../x86_64-pc-headless.x86_64-latest.args | 3 +-
> .../x86_64-q35-graphics.x86_64-latest.args | 3 +-
> .../x86_64-q35-headless.x86_64-latest.args | 3 +-
> 298 files changed, 653 insertions(+), 282 deletions(-)
>
More information about the libvir-list
mailing list