Bug 1878465 - RFE: Add AER support to PCIe virtio devices
Summary: RFE: Add AER support to PCIe virtio devices
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux Advanced Virtualization
Classification: Red Hat
Component: qemu-kvm
Version: ---
Hardware: x86_64
OS: Windows
unspecified
medium
Target Milestone: rc
: 8.3
Assignee: Yvugenfi@redhat.com
QA Contact: Yiqian Wei
URL:
Whiteboard:
: 1857668 (view as bug list)
Depends On: 1857668
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-09-13 08:25 UTC by Amnon Ilan
Modified: 2021-11-16 08:00 UTC (History)
20 users (show)

Fixed In Version: qemu-kvm-6.0.0-22
Doc Type: Enhancement
Doc Text:
Clone Of: 1857668
Environment:
Last Closed: 2021-11-16 07:51:01 UTC
Type: Feature Request
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2021:4684 0 None None None 2021-11-16 07:51:22 UTC

Comment 1 Amnon Ilan 2020-09-13 08:28:52 UTC
*** Bug 1857668 has been marked as a duplicate of this bug. ***

Comment 15 Yanan Fu 2021-07-08 16:04:22 UTC
Set 'Verified:Tested,SanityOnly' as gating/tier1 test pass with 'qemu-kvm-6.0.0-22.module+el8.5.0+11695+95588379' pass.

Comment 20 Danilo de Paula 2021-07-13 02:09:10 UTC
Should I add this to the 8.5 errata?
If yes, please add a NEEDINFO on me.

Comment 24 qing.wang 2021-07-13 09:58:07 UTC
Verified device virtio-scsi-pci and virtio-blk-pci, it meet expected result.

Red Hat Enterprise Linux release 8.5 Beta (Ootpa)
4.18.0-315.el8.x86_64
qemu-kvm-common-6.0.0-21.module+el8.5.0+11555+e0ab0d09.x86_64




/usr/libexec/qemu-kvm \
  -name testvm \
  -machine q35 \
  -m 8G \
  -smp 8 \
  -cpu host,vmx,+kvm_pv_unhalt \
  -device qemu-xhci,id=usb1 \
  -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
  \
  -device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x3,chassis=1 \
  -device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x3.0x1,bus=pcie.0,chassis=2 \
  -device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x3.0x2,bus=pcie.0,chassis=3 \
  -device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x3.0x3,bus=pcie.0,chassis=4 \
  -device pcie-root-port,id=pcie-root-port-4,port=0x4,addr=0x3.0x4,bus=pcie.0,chassis=5 \
  -device pcie-root-port,id=pcie-root-port-5,port=0x5,addr=0x3.0x5,bus=pcie.0,chassis=6 \
  -device pcie-root-port,id=pcie-root-port-6,port=0x6,addr=0x3.0x6,bus=pcie.0,chassis=7 \
  -device pcie-root-port,id=pcie-root-port-7,port=0x7,addr=0x3.0x7,bus=pcie.0,chassis=8  \
  -device virtio-scsi-pci,id=scsi0,bus=pcie-root-port-5,aer=on,ats=on \
  \
  -blockdev driver=qcow2,file.driver=file,cache.direct=off,cache.no-flush=on,file.filename=/home/kvm_autotest_root/images/rhel850-64-virtio.qcow2,node-name=drive_image1   \
  -device virtio-blk-pci,id=os,drive=drive_image1,bus=pcie-root-port-3,bootindex=0,serial=OS_DISK   \
  \
  -blockdev driver=qcow2,file.driver=file,file.filename=/home/kvm_autotest_root/images/data1.qcow2,node-name=data_image1   \
  -device virtio-blk-pci,id=data1,drive=data_image1,bus=pcie-root-port-4,bootindex=1,aer=on,ats=on,serial=DATA_DISK1   \
  \
  -vnc :5 \
  -monitor stdio \
  -qmp tcp:0:5955,server=on,wait=off \
  -device virtio-net-pci,mac=9a:b5:b6:b1:b2:b7,id=idMmq1jH,vectors=4,netdev=idxgXAlm,bus=pcie-root-port-7 \
  -netdev tap,id=idxgXAlm \
  -chardev socket,id=qmp_id_qmpmonitor1,path=/var/tmp/monitor-qmp7.log,server=on,wait=off \
  -mon chardev=qmp_id_qmpmonitor1,mode=control \
  -chardev file,path=/var/tmp/monitor-serial7.log,id=serial_id_serial0 \
  -device isa-serial,chardev=serial_id_serial0 \
  -D debug.log \
  -boot menu=on,reboot-timeout=1000 \
   \


root@vm-198-107 /home $ lspci -s 05:00.0 -v
05:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device (rev 01)
Subsystem: Red Hat, Inc. Device 1100
Physical Slot: 0-4
Flags: bus master, fast devsel, latency 0, IRQ 23
Memory at fe000000 (32-bit, non-prefetchable) [size=4K]
Memory at fc600000 (64-bit, prefetchable) [size=16K]
Capabilities: [dc] MSI-X: Enable+ Count=9 Masked-
Capabilities: [c8] Vendor Specific Information: VirtIO: <unknown>
Capabilities: [b4] Vendor Specific Information: VirtIO: Notify
Capabilities: [a4] Vendor Specific Information: VirtIO: DeviceCfg
Capabilities: [94] Vendor Specific Information: VirtIO: ISR
Capabilities: [84] Vendor Specific Information: VirtIO: CommonCfg
Capabilities: [7c] Power Management version 3
Capabilities: [40] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Address Translation Service (ATS)
Kernel driver in use: virtio-pci

root@vm-198-107 /home $ lspci -s 06:00.0 -v
06:00.0 SCSI storage controller: Red Hat, Inc. Virtio SCSI (rev 01)
Subsystem: Red Hat, Inc. Device 1100
Physical Slot: 0-5
Flags: bus master, fast devsel, latency 0, IRQ 23
Memory at fde00000 (32-bit, non-prefetchable) [size=4K]
Memory at fc400000 (64-bit, prefetchable) [size=16K]
Capabilities: [dc] MSI-X: Enable+ Count=11 Masked-
Capabilities: [c8] Vendor Specific Information: VirtIO: <unknown>
Capabilities: [b4] Vendor Specific Information: VirtIO: Notify
Capabilities: [a4] Vendor Specific Information: VirtIO: DeviceCfg
Capabilities: [94] Vendor Specific Information: VirtIO: ISR
Capabilities: [84] Vendor Specific Information: VirtIO: CommonCfg
Capabilities: [7c] Power Management version 3
Capabilities: [40] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Address Translation Service (ATS)
Kernel driver in use: virtio-pci

root@vm-198-107 /home $ lspci -s 00:03.0 -v
00:03.0 PCI bridge: Red Hat, Inc. QEMU PCIe Root port (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 23
Memory at fea15000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 00001000-00001fff [size=4K]
Memory behind bridge: fe800000-fe9fffff [size=2M]
Prefetchable memory behind bridge: 00000000fce00000-00000000fcffffff [size=2M]
Capabilities: [54] Express Root Port (Slot+), MSI 00
Capabilities: [48] MSI-X: Enable+ Count=1 Masked-
Capabilities: [40] Subsystem: Red Hat, Inc. Device 0000
Capabilities: [100] Advanced Error Reporting   < --- enable default ?
Capabilities: [148] Access Control Services
Kernel driver in use: pcieport

Comment 28 Qinghua Cheng 2021-07-14 09:55:53 UTC
Checked with vsock device:

Host: RHEL.8.5.0
kernel: 4.18.0-319.el8.x86_64
qemu-kvm: qemu-kvm-6.0.0-22.module+el8.5.0+11695+95588379.x86_64

Command line:
/usr/libexec/qemu-kvm \
    -name 'l1-rhel8' \
    -machine q35  \
    -cpu host,svm \
    -m 8192  \
    -smp 12,maxcpus=12,cores=6,threads=1,sockets=2  \
    -nodefaults \
    -device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \
    -device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0  \
    -device pcie-root-port,id=pcie-root-port-1,port=0x4,addr=0x1.0x4,bus=pcie.0,chassis=2 \
    -device vhost-vsock-pci,id=vhost_vsock0,guest-cid=3,bus=pcie-root-port-1,addr=0x0,aer=on,ats=on \
    -device VGA,bus=pcie.0,addr=0x2  \
    -device qemu-xhci,id=usb1,bus=pcie.0,addr=0x3 \
    -drive id=drive_image1,if=none,snapshot=off,aio=threads,cache=none,format=qcow2,file=/home/kvm_autotest_root/images/rhel850-64-virtio-scsi.qcow2 \
    -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,serial=SYSTEM_DISK0,bus=pcie.0,addr=0x4 \
    -device virtio-net-pci,mac=9a:ff:43:39:cd:8b,id=idO4Skpc,netdev=idpmLptO,bus=pcie.0,addr=0x5  \
    -netdev tap,id=idpmLptO,vhost=on \
    -vnc :1  \
    -rtc base=localtime,clock=host,driftfix=slew  \
    -boot order=cdn,once=d,menu=off,strict=off \
    -enable-kvm \
    -monitor stdio -qmp tcp:0:6666,server,nowait \


In guest vm:

# lspci -s 03:00.0 -v
03:00.0 Communication controller: Red Hat, Inc. Virtio socket (rev 01)
	Subsystem: Red Hat, Inc. Device 1100
	Physical Slot: 0-1
	Flags: bus master, fast devsel, latency 0, IRQ 21
	Memory at fe600000 (32-bit, non-prefetchable) [size=4K]
	Memory at fe000000 (64-bit, prefetchable) [size=16K]
	Capabilities: [dc] MSI-X: Enable+ Count=3 Masked-
	Capabilities: [c8] Vendor Specific Information: VirtIO: <unknown>
	Capabilities: [b4] Vendor Specific Information: VirtIO: Notify
	Capabilities: [a4] Vendor Specific Information: VirtIO: DeviceCfg
	Capabilities: [94] Vendor Specific Information: VirtIO: ISR
	Capabilities: [84] Vendor Specific Information: VirtIO: CommonCfg
	Capabilities: [7c] Power Management version 3
	Capabilities: [40] Express Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

Comment 29 Yumei Huang 2021-07-16 03:25:16 UTC
Tested virtio-balloon device with both rhel8.5 and win2022 guest, AER and ATS capabilities are present inside guest, and balloon function works well.

Packages:
qemu-kvm-6.0.0-22.module+el8.5.0+11695+95588379
kernel-4.18.0-318.el8.x86_64

QEMU cli:
# /usr/libexec/qemu-kvm \
    -name 'avocado-vt-vm1' \
    -machine q35  \
    -device pcie-root-port,id=pcie.0-root-port-5,slot=5,chassis=5,addr=0x5,bus=pcie.0 \
    -device virtio-balloon-pci,id=balloon0,bus=pcie.0-root-port-5,aer=on,ats=on \
    ...

RHEL8.5 guest:
# lspci -s 03:00.0 -v 
03:00.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon (rev 01)
        ...
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

Win2022 guest:
The value of AER and ATS of balloon device is true.

Comment 30 yduan 2021-07-20 14:06:08 UTC
Check with virtio-rng device PASS:

4.18.0-321.el8.x86_64
qemu-kvm-6.0.0-23.module+el8.5.0+11740+35571f13.x86_64

QEMU Command line:
/usr/libexec/qemu-kvm \
 -name 'RHEL.8.5.0' \
 -sandbox on \
 -machine q35 \
 ......
 -device pcie-root-port,id=pcie_extra_root_port_0,multifunction=on,bus=pcie.0,addr=0x3,chassis=5,hotplug=off \
 -object rng-builtin,id=obj0 \
 -device virtio-rng-pci,rng=obj0,id=rng0,bus=pcie_extra_root_port_0,addr=0x0,aer=on,ats=on \
 ......


RHEL 8.5 guest:
# lspci -s 06:00.0 -v
06:00.0 Unclassified device [00ff]: Red Hat, Inc. Virtio RNG (rev 01)
	Subsystem: Red Hat, Inc. Device 1100
	Flags: bus master, fast devsel, latency 0, IRQ 23
	Memory at fe200000 (64-bit, prefetchable) [size=16K]
	Capabilities: [c8] Vendor Specific Information: VirtIO: <unknown>
	Capabilities: [b4] Vendor Specific Information: VirtIO: Notify
	Capabilities: [a4] Vendor Specific Information: VirtIO: DeviceCfg
	Capabilities: [94] Vendor Specific Information: VirtIO: ISR
	Capabilities: [84] Vendor Specific Information: VirtIO: CommonCfg
	Capabilities: [7c] Power Management version 3
	Capabilities: [40] Express Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

Comment 32 liunana 2021-07-26 03:47:19 UTC
Check with virtio-serial-pci device PASS with both rhel8.5 and win2019 guest, AER and ATS capabilities are present inside guest:

Test Environments:
    qemu-kvm-6.0.0-22.module+el8.5.0+11695+95588379
    4.18.0-323.el8.x86_64



Test qemu cmdline:
/usr/libexec/qemu-kvm \
    -machine q35 \
    -device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \
    ......
    -device pcie-root-port,id=pcie-root-port-4,port=0x4,addr=0x1.0x4,bus=pcie.0,chassis=5 \
    -device virtio-serial-pci,id=virtio_serial_pci0,bus=pcie-root-port-4,addr=0x0,aer=on,ats=on \
    -device virtserialport,id=vs1,name=vs1,chardev=chardev_vs1,bus=virtio_serial_pci0.0,nr=1  \
    -chardev socket,wait=off,server=on,id=chardev_vs1,path=/tmp/serial-vs1 \


RHEL8.5.0 guest:
# lspci -s 06:00.0 -v
06:00.0 Communication controller: Red Hat, Inc. Virtio console (rev 01)
	Subsystem: Red Hat, Inc. Device 1100
	Physical Slot: 0-4
	Flags: bus master, fast devsel, latency 0, IRQ 21
	Memory at fe000000 (32-bit, non-prefetchable) [size=4K]
	Memory at fd000000 (64-bit, prefetchable) [size=16K]
	Capabilities: [dc] MSI-X: Enable+ Count=2 Masked-
	Capabilities: [c8] Vendor Specific Information: VirtIO: <unknown>
	Capabilities: [b4] Vendor Specific Information: VirtIO: Notify
	Capabilities: [a4] Vendor Specific Information: VirtIO: DeviceCfg
	Capabilities: [94] Vendor Specific Information: VirtIO: ISR
	Capabilities: [84] Vendor Specific Information: VirtIO: CommonCfg
	Capabilities: [7c] Power Management version 3
	Capabilities: [40] Express Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci


Win2019 guest:
The value of AER and ATS of the Virtio Serial device is present.



Best regards
Liu Nana

Comment 33 Zhenyu Zhang 2021-07-26 08:48:26 UTC
Verified device virtio-gpu-pci,virtio-scsi-pci,virtio-net-pci,vhost-vsock-pci on aarch64, it meet expected result.

Packages:
qemu-kvm:qemu-kvm-6.0.0-22.module+el8.5.0+11695+95588379
host kernel: 4.18.0-323.el8.aarch64
guest kernel:4.18.0-321.el8.aarch64

QEMU cli:
/usr/libexec/qemu-kvm \
-name 'avocado-vt-vm1'  \
-sandbox on  \
-blockdev node-name=file_aavmf_code,driver=file,filename=/usr/share/edk2/aarch64/QEMU_EFI-silent-pflash.raw,auto-read-only=on,discard=unmap \
-blockdev node-name=drive_aavmf_code,driver=raw,read-only=on,file=file_aavmf_code \
-blockdev node-name=file_aavmf_vars,driver=file,filename=/home/kvm_autotest_root/images/avocado-vt-vm1_rhel850-aarch64-virtio-scsi.qcow2_VARS.fd,auto-read-only=on,discard=unmap \
-blockdev node-name=drive_aavmf_vars,driver=raw,read-only=off,file=file_aavmf_vars \
-machine virt,gic-version=host,pflash0=drive_aavmf_code,pflash1=drive_aavmf_vars \
-device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \
-device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0  \
-nodefaults \
-device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \
-device virtio-gpu-pci,bus=pcie-root-port-1,addr=0x0,aer=on,ats=on \
-m 4096 \
-cpu 'host' \
-object memory-backend-file,size=4G,mem-path=/dev/shm,share=yes,id=mem-mem1  \
-smp 8,cores=4,threads=1,sockets=2  \
-numa node,memdev=mem-mem1,nodeid=0  \
-chardev socket,server=on,wait=off,path=/tmp/monitor-qmpmonitor1-20210726-015313-pjmkEDXd,id=qmp_id_qmpmonitor1  \
-mon chardev=qmp_id_qmpmonitor1,mode=control \
-chardev socket,server=on,wait=off,path=/tmp/monitor-catch_monitor-20210726-015313-pjmkEDXd,id=qmp_id_catch_monitor  \
-mon chardev=qmp_id_catch_monitor,mode=control  \
-serial unix:'/tmp/serial-serial0-20210726-015313-pjmkEDXd',server=on,wait=off \
-device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \
-device qemu-xhci,id=usb1,bus=pcie-root-port-2,addr=0x0 \
-device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
-device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \
-device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pcie-root-port-3,addr=0x0,aer=on,ats=on \
-blockdev node-name=file_image1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/kvm_autotest_root/images/rhel850-aarch64-virtio-scsi.qcow2,cache.direct=on,cache.no-flush=off \
-blockdev node-name=drive_image1,driver=qcow2,read-only=off,cache.direct=on,cache.no-flush=off,file=file_image1 \
-device scsi-hd,id=image1,drive=drive_image1,write-cache=on \
-device pcie-root-port,id=pcie-root-port-4,port=0x4,addr=0x1.0x4,bus=pcie.0,chassis=5 \
-device virtio-net-pci,mac=9a:4f:d5:a5:94:63,rombar=0,id=idffttea,netdev=idCyKEVR,bus=pcie-root-port-4,addr=0x0,aer=on,ats=on  \
-netdev tap,id=idCyKEVR,vhost=on \
-device pcie-root-port,id=pcie-root-port-5,port=0x5,addr=0x1.0x5,bus=pcie.0,chassis=6 \
-device vhost-vsock-pci,id=vhost_vsock0,guest-cid=3,bus=pcie-root-port-5,addr=0x0,aer=on,ats=on \
-vnc :20  \
-rtc base=utc,clock=host,driftfix=slew \
-enable-kvm \
-monitor stdio 

RHEL8.5 guest:
03:00.0 -device virtio-gpu-pci,bus=pcie-root-port-1,addr=0x0,aer=on,ats=on \
05:00.0 -device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pcie-root-port-3,addr=0x0,aer=on,ats=on \
06:00.0 -device virtio-net-pci,mac=9a:4f:d5:a5:94:63,rombar=0,id=idffttea,netdev=idCyKEVR,bus=pcie-root-port-4,addr=0x0,aer=on,ats=on  \
07:00.0 -device vhost-vsock-pci,id=vhost_vsock0,guest-cid=3,bus=pcie-root-port-5,addr=0x0,aer=on,ats=on

03:00.0 Display controller: Red Hat, Inc. Virtio GPU (rev 01)
	...
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

05:00.0 SCSI storage controller: Red Hat, Inc. Virtio SCSI (rev 01)
	...
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

06:00.0 Ethernet controller: Red Hat, Inc. Virtio network device (rev 01)
	...
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

07:00.0 Communication controller: Red Hat, Inc. Virtio socket (rev 01)
	...
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

Comment 34 Zhenyu Zhang 2021-07-26 09:16:36 UTC
Verified device virtio-balloon,virtio-serial-pci,virtio-blk-pci,virtio-rng on aarch64, it meet expected result.

Packages:
qemu-kvm:qemu-kvm-6.0.0-22.module+el8.5.0+11695+95588379
host kernel: 4.18.0-323.el8.aarch64
guest kernel:4.18.0-321.el8.aarch64

QEMU cli:
/usr/libexec/qemu-kvm \
-machine virt,gic-version=host,pflash0=drive_aavmf_code,pflash1=drive_aavmf_vars \
-device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \
-device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0  \
......
-device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \
-device virtio-balloon-pci,id=balloon0,bus=pcie-root-port-1,addr=0x0,aer=on,ats=on \
......
-device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \
-device virtio-serial-pci,id=virtio_serial_pci0,bus=pcie-root-port-2,addr=0x0,aer=on,ats=on \
-device virtserialport,id=vs1,name=vs1,chardev=chardev_vs1,bus=virtio_serial_pci0.0,nr=1  \
-chardev socket,wait=off,server=on,id=chardev_vs1,path=/tmp/serial-serial0-20210726-015313-pjmkEDXd \
......
-blockdev node-name=file_image1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/kvm_autotest_root/images/rhel850-aarch64-virtio-scsi.qcow2,cache.direct=on,cache.no-flush=off \
-blockdev node-name=drive_image1,driver=qcow2,read-only=off,cache.direct=on,cache.no-flush=off,file=file_image1 \
-device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \
-device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,write-cache=on,bus=pcie-root-port-3,addr=0x0,aer=on,ats=on \
......
-device pcie-root-port,id=pcie-root-port-5,port=0x5,addr=0x1.0x5,bus=pcie.0,chassis=6 \
-object rng-builtin,id=obj0 \
-device virtio-rng-pci,rng=obj0,id=rng0,bus=pcie-root-port-5,addr=0x0,aer=on,ats=on \


RHEL8.5 guest:
03:00.0 -device virtio-balloon-pci,id=balloon0,bus=pcie-root-port-1,addr=0x0,aer=on,ats=on \
04:00.0 -device virtio-serial-pci,id=virtio_serial_pci0,bus=pcie-root-port-2,addr=0x0,aer=on,ats=on \
05:00.0 -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,write-cache=on,bus=pcie-root-port-3,addr=0x0,aer=on,ats=on \
07:00.0 -device virtio-rng-pci,rng=obj0,id=rng0,bus=pcie-root-port-5,addr=0x0,aer=on,ats=on \


03:00.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon (rev 01)
	...
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

04:00.0 Communication controller: Red Hat, Inc. Virtio console (rev 01)
	...
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

05:00.0 SCSI storage controller: Red Hat, Inc. Virtio block device (rev 01)
	...
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

07:00.0 Unclassified device [00ff]: Red Hat, Inc. Virtio RNG (rev 01)
	...
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [148] Address Translation Service (ATS)
	Kernel driver in use: virtio-pci

Comment 36 Guo, Zhiyi 2021-08-02 16:06:06 UTC
Have verified virtio-vga, virtio-tablet-pci, virtio-mouse-pci and virtio-keyboard-pci with ats and aer:
package used:
qemu-kvm-6.0.0-24.module+el8.5.0+11844+1e3017bd.x86_64
4.18.0-325.el8.x86_64(rhel 8.5 VM)

qemu cli used:
...
-device virtio-tablet-pci,id=input0,bus=pci.7,addr=0x0,ats=on,aer=on \
-device virtio-mouse-pci,id=input1,bus=pci.8,addr=0x0,ats=on,aer=on \
-device virtio-keyboard-pci,id=input2,bus=pci.9,addr=0x0,ats=on,aer=on \
...

Inside rhel 8.5 vm, check the ats and aer capabilities supported by these devices:
For virtio-tablet-pci, virtio-mouse-pci and virtio-keyboard-pci:
#lspci
...
01:00.0 Input device controller: Red Hat, Inc. Virtio input (rev 01)
02:00.0 Mouse controller: Red Hat, Inc. Virtio input (rev 01)
03:00.0 Keyboard controller: Red Hat, Inc. Virtio input (rev 01)
...

#lspci -v
...
01:00.0 Input device controller: Red Hat, Inc. Virtio input (rev 01)
        Subsystem: Red Hat, Inc. Device 1100
        Physical Slot: 0
...
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [148] Address Translation Service (ATS)
        Kernel driver in use: virtio-pci

02:00.0 Mouse controller: Red Hat, Inc. Virtio input (rev 01)
        Subsystem: Red Hat, Inc. Device 1100
        Physical Slot: 0-1
...
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [148] Address Translation Service (ATS)
        Kernel driver in use: virtio-pci

03:00.0 Keyboard controller: Red Hat, Inc. Virtio input (rev 01)
        Subsystem: Red Hat, Inc. Device 1100
        Physical Slot: 0-2
...
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [148] Address Translation Service (ATS)
        Kernel driver in use: virtio-pci

#lspci -tv
-[0000:00]-+-00.0  Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller
           +-01.0-[01]----00.0  Red Hat, Inc. Virtio input
           +-01.1-[02]----00.0  Red Hat, Inc. Virtio input
           +-01.2-[03]----00.0  Red Hat, Inc. Virtio input
...

For virtio-vga, enable ats and aer will require virtio-vga been put behind pcie-root-port but however video device should be put behind pcie.0 otherwise will impact the vga registers of virtio-vga read by linux VM. So just put virtio-vga to see whether ats and aer can be enabled for virtio-vga:
#lspci -tv
...
+-02.4-[08]----00.0  Red Hat, Inc. Virtio GPU
...

#lspci -v
...
08:00.0 VGA compatible controller: Red Hat, Inc. Virtio GPU (rev 01) (prog-if 00 [VGA controller])
        Subsystem: Red Hat, Inc. Device 1100
        Physical Slot: 0-7
...
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [148] Address Translation Service (ATS)
        Kernel driver in use: virtio-pci
...

Don't see any impacts to virtio input devices with ats and aer enabled.

Also have checked aer and acs for these devices on windowns 10 21H1 VM, AER and ATS capabilities are present inside guest.

Comment 40 errata-xmlrpc 2021-11-16 07:51:01 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (virt:av bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:4684


Note You need to log in before you can comment on or make changes to this bug.