register: 0.982 user-level: 0.980 semantic: 0.975 graphic: 0.972 debug: 0.967 architecture: 0.954 assembly: 0.953 device: 0.945 mistranslation: 0.942 risc-v: 0.939 performance: 0.939 virtual: 0.938 TCG: 0.933 arm: 0.929 kernel: 0.927 permissions: 0.922 alpha: 0.919 PID: 0.916 ppc: 0.914 peripherals: 0.911 hypervisor: 0.911 vnc: 0.910 KVM: 0.908 VMM: 0.901 boot: 0.897 operating system: 0.896 network: 0.881 socket: 0.870 files: 0.858 x86: 0.855 i386: 0.675 [Bug Report] smmuv3 event 0x10 report when running virtio-blk-pci Hi All, When I tested mainline qemu(commit 7b87a25f49), it reports smmuv3 event 0x10 during kernel booting up. qemu command which I use is as below: qemu-system-aarch64 -machine virt,kernel_irqchip=on,gic-version=3,iommu=smmuv3 \ -kernel Image -initrd minifs.cpio.gz \ -enable-kvm -net none -nographic -m 3G -smp 6 -cpu host \ -append 'rdinit=init console=ttyAMA0 ealycon=pl0ll,0x90000000 maxcpus=3' \ -device pcie-root-port,port=0x8,chassis=0,id=pci.0,bus=pcie.0,multifunction=on,addr=0x2 \ -device pcie-root-port,port=0x9,chassis=1,id=pci.1,bus=pcie.0,addr=0x2.0x1 \ -device virtio-blk-pci,drive=drive0,id=virtblk0,num-queues=8,packed=on,bus=pci.1 \ -drive file=/home/boot.img,if=none,id=drive0,format=raw smmuv3 event 0x10 log: [...] [ 1.962656] virtio-pci 0000:02:00.0: Adding to iommu group 0 [ 1.963150] virtio-pci 0000:02:00.0: enabling device (0000 -> 0002) [ 1.964707] virtio_blk virtio0: 6/0/0 default/read/poll queues [ 1.965759] virtio_blk virtio0: [vda] 2097152 512-byte logical blocks (1.07 GB/1.00 GiB) [ 1.966934] arm-smmu-v3 9050000.smmuv3: event 0x10 received: [ 1.967442] input: gpio-keys as /devices/platform/gpio-keys/input/input0 [ 1.967478] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 [ 1.968381] clk: Disabling unused clocks [ 1.968677] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 [ 1.968990] PM: genpd: Disabling unused power domains [ 1.969424] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 [ 1.969814] ALSA device list: [ 1.970240] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 [ 1.970471] No soundcards found. [ 1.970902] arm-smmu-v3 9050000.smmuv3: event 0x10 received: [ 1.971600] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 [ 1.971602] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 [ 1.971606] arm-smmu-v3 9050000.smmuv3: event 0x10 received: [ 1.971607] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 [ 1.974202] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 [ 1.974634] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 [ 1.975005] Freeing unused kernel memory: 10112K [ 1.975062] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 [ 1.975442] Run init as init process Another information is that if "maxcpus=3" is removed from the kernel command line, it will be OK. I am not sure if there is a bug about vsmmu. It will be very appreciated if anyone know this issue or can take a look at it. Thanks, Zhou On Mon, 9 Sept 2024 at 15:22, Zhou Wang via wrote: > > Hi All, > > When I tested mainline qemu(commit 7b87a25f49), it reports smmuv3 event 0x10 > during kernel booting up. Does it still do this if you either: (1) use the v9.1.0 release (commit fd1952d814da) (2) use "-machine virt-9.1" instead of "-machine virt" ? My suspicion is that this will have started happening now that we expose an SMMU with two-stage translation support to the guest in the "virt" machine type (which we do not if you either use virt-9.1 or in the v9.1.0 release). I've cc'd Eric (smmuv3 maintainer) and Mostafa (author of the two-stage support). > qemu command which I use is as below: > > qemu-system-aarch64 -machine > virt,kernel_irqchip=on,gic-version=3,iommu=smmuv3 \ > -kernel Image -initrd minifs.cpio.gz \ > -enable-kvm -net none -nographic -m 3G -smp 6 -cpu host \ > -append 'rdinit=init console=ttyAMA0 ealycon=pl0ll,0x90000000 maxcpus=3' \ > -device > pcie-root-port,port=0x8,chassis=0,id=pci.0,bus=pcie.0,multifunction=on,addr=0x2 > \ > -device pcie-root-port,port=0x9,chassis=1,id=pci.1,bus=pcie.0,addr=0x2.0x1 \ > -device > virtio-blk-pci,drive=drive0,id=virtblk0,num-queues=8,packed=on,bus=pci.1 \ > -drive file=/home/boot.img,if=none,id=drive0,format=raw > > smmuv3 event 0x10 log: > [...] > [ 1.962656] virtio-pci 0000:02:00.0: Adding to iommu group 0 > [ 1.963150] virtio-pci 0000:02:00.0: enabling device (0000 -> 0002) > [ 1.964707] virtio_blk virtio0: 6/0/0 default/read/poll queues > [ 1.965759] virtio_blk virtio0: [vda] 2097152 512-byte logical blocks > (1.07 GB/1.00 GiB) > [ 1.966934] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > [ 1.967442] input: gpio-keys as /devices/platform/gpio-keys/input/input0 > [ 1.967478] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > [ 1.968381] clk: Disabling unused clocks > [ 1.968677] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > [ 1.968990] PM: genpd: Disabling unused power domains > [ 1.969424] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.969814] ALSA device list: > [ 1.970240] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.970471] No soundcards found. > [ 1.970902] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > [ 1.971600] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.971602] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.971606] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > [ 1.971607] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > [ 1.974202] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > [ 1.974634] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.975005] Freeing unused kernel memory: 10112K > [ 1.975062] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.975442] Run init as init process > > Another information is that if "maxcpus=3" is removed from the kernel command > line, > it will be OK. > > I am not sure if there is a bug about vsmmu. It will be very appreciated if > anyone > know this issue or can take a look at it. thanks -- PMM On 2024/9/9 22:31, Peter Maydell wrote: > On Mon, 9 Sept 2024 at 15:22, Zhou Wang via wrote: > > > > Hi All, > > > > When I tested mainline qemu(commit 7b87a25f49), it reports smmuv3 event 0x10 > > during kernel booting up. > > Does it still do this if you either: > (1) use the v9.1.0 release (commit fd1952d814da) > (2) use "-machine virt-9.1" instead of "-machine virt" I tested above two cases, the problem is still there. > > ? > > My suspicion is that this will have started happening now that > we expose an SMMU with two-stage translation support to the guest > in the "virt" machine type (which we do not if you either > use virt-9.1 or in the v9.1.0 release). > > I've cc'd Eric (smmuv3 maintainer) and Mostafa (author of > the two-stage support). > > > qemu command which I use is as below: > > > > qemu-system-aarch64 -machine > > virt,kernel_irqchip=on,gic-version=3,iommu=smmuv3 \ > > -kernel Image -initrd minifs.cpio.gz \ > > -enable-kvm -net none -nographic -m 3G -smp 6 -cpu host \ > > -append 'rdinit=init console=ttyAMA0 ealycon=pl0ll,0x90000000 maxcpus=3' \ > > -device > > pcie-root-port,port=0x8,chassis=0,id=pci.0,bus=pcie.0,multifunction=on,addr=0x2 > > \ > > -device pcie-root-port,port=0x9,chassis=1,id=pci.1,bus=pcie.0,addr=0x2.0x1 \ > > -device > > virtio-blk-pci,drive=drive0,id=virtblk0,num-queues=8,packed=on,bus=pci.1 \ > > -drive file=/home/boot.img,if=none,id=drive0,format=raw > > > > smmuv3 event 0x10 log: > > [...] > > [ 1.962656] virtio-pci 0000:02:00.0: Adding to iommu group 0 > > [ 1.963150] virtio-pci 0000:02:00.0: enabling device (0000 -> 0002) > > [ 1.964707] virtio_blk virtio0: 6/0/0 default/read/poll queues > > [ 1.965759] virtio_blk virtio0: [vda] 2097152 512-byte logical blocks > > (1.07 GB/1.00 GiB) > > [ 1.966934] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > > [ 1.967442] input: gpio-keys as /devices/platform/gpio-keys/input/input0 > > [ 1.967478] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > > [ 1.968381] clk: Disabling unused clocks > > [ 1.968677] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > > [ 1.968990] PM: genpd: Disabling unused power domains > > [ 1.969424] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.969814] ALSA device list: > > [ 1.970240] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.970471] No soundcards found. > > [ 1.970902] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > > [ 1.971600] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > > [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > > [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.971602] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.971606] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > > [ 1.971607] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > > [ 1.974202] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > > [ 1.974634] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.975005] Freeing unused kernel memory: 10112K > > [ 1.975062] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.975442] Run init as init process > > > > Another information is that if "maxcpus=3" is removed from the kernel > > command line, > > it will be OK. > > > > I am not sure if there is a bug about vsmmu. It will be very appreciated if > > anyone > > know this issue or can take a look at it. > > thanks > -- PMM > . Hi Zhou, On 9/10/24 03:24, Zhou Wang via wrote: > On 2024/9/9 22:31, Peter Maydell wrote: > > On Mon, 9 Sept 2024 at 15:22, Zhou Wang via wrote: > >> Hi All, > >> > >> When I tested mainline qemu(commit 7b87a25f49), it reports smmuv3 event 0x10 > >> during kernel booting up. > > Does it still do this if you either: > > (1) use the v9.1.0 release (commit fd1952d814da) > > (2) use "-machine virt-9.1" instead of "-machine virt" > I tested above two cases, the problem is still there. Thank you for reporting. I am able to reproduce and effectively the maxcpus kernel option is triggering the issue. It works without. I will come back to you asap. Eric > > > ? > > > > My suspicion is that this will have started happening now that > > we expose an SMMU with two-stage translation support to the guest > > in the "virt" machine type (which we do not if you either > > use virt-9.1 or in the v9.1.0 release). > > > > I've cc'd Eric (smmuv3 maintainer) and Mostafa (author of > > the two-stage support). > > > >> qemu command which I use is as below: > >> > >> qemu-system-aarch64 -machine > >> virt,kernel_irqchip=on,gic-version=3,iommu=smmuv3 \ > >> -kernel Image -initrd minifs.cpio.gz \ > >> -enable-kvm -net none -nographic -m 3G -smp 6 -cpu host \ > >> -append 'rdinit=init console=ttyAMA0 ealycon=pl0ll,0x90000000 maxcpus=3' \ > >> -device > >> pcie-root-port,port=0x8,chassis=0,id=pci.0,bus=pcie.0,multifunction=on,addr=0x2 > >> \ > >> -device pcie-root-port,port=0x9,chassis=1,id=pci.1,bus=pcie.0,addr=0x2.0x1 \ > >> -device > >> virtio-blk-pci,drive=drive0,id=virtblk0,num-queues=8,packed=on,bus=pci.1 \ > >> -drive file=/home/boot.img,if=none,id=drive0,format=raw > >> > >> smmuv3 event 0x10 log: > >> [...] > >> [ 1.962656] virtio-pci 0000:02:00.0: Adding to iommu group 0 > >> [ 1.963150] virtio-pci 0000:02:00.0: enabling device (0000 -> 0002) > >> [ 1.964707] virtio_blk virtio0: 6/0/0 default/read/poll queues > >> [ 1.965759] virtio_blk virtio0: [vda] 2097152 512-byte logical blocks > >> (1.07 GB/1.00 GiB) > >> [ 1.966934] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > >> [ 1.967442] input: gpio-keys as /devices/platform/gpio-keys/input/input0 > >> [ 1.967478] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > >> [ 1.968381] clk: Disabling unused clocks > >> [ 1.968677] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > >> [ 1.968990] PM: genpd: Disabling unused power domains > >> [ 1.969424] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.969814] ALSA device list: > >> [ 1.970240] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.970471] No soundcards found. > >> [ 1.970902] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > >> [ 1.971600] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > >> [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > >> [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.971602] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.971606] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > >> [ 1.971607] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > >> [ 1.974202] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > >> [ 1.974634] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.975005] Freeing unused kernel memory: 10112K > >> [ 1.975062] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.975442] Run init as init process > >> > >> Another information is that if "maxcpus=3" is removed from the kernel > >> command line, > >> it will be OK. > >> > >> I am not sure if there is a bug about vsmmu. It will be very appreciated if > >> anyone > >> know this issue or can take a look at it. > > thanks > > -- PMM > > . Hi, On 9/10/24 03:24, Zhou Wang via wrote: > On 2024/9/9 22:31, Peter Maydell wrote: > > On Mon, 9 Sept 2024 at 15:22, Zhou Wang via wrote: > >> Hi All, > >> > >> When I tested mainline qemu(commit 7b87a25f49), it reports smmuv3 event 0x10 > >> during kernel booting up. > > Does it still do this if you either: > > (1) use the v9.1.0 release (commit fd1952d814da) > > (2) use "-machine virt-9.1" instead of "-machine virt" > I tested above two cases, the problem is still there. I have not much progressed yet but I see it comes with qemu traces. smmuv3-iommu-memory-region-0-0 translation failed for iova=0x0 (SMMU_EVT_F_TRANSLATION) ../.. qemu-system-aarch64: virtio-blk failed to set guest notifier (-22), ensure -accel kvm is set. qemu-system-aarch64: virtio_bus_start_ioeventfd: failed. Fallback to userspace (slower). the PCIe Host bridge seems to cause that translation failure at iova=0 Also virtio-iommu has the same issue: qemu-system-aarch64: virtio_iommu_translate no mapping for 0x0 for sid=1024 qemu-system-aarch64: virtio-blk failed to set guest notifier (-22), ensure -accel kvm is set. qemu-system-aarch64: virtio_bus_start_ioeventfd: failed. Fallback to userspace (slower). Only happens with maxcpus=3. Note the virtio-blk-pci is not protected by the vIOMMU in your case. Thanks Eric > > > ? > > > > My suspicion is that this will have started happening now that > > we expose an SMMU with two-stage translation support to the guest > > in the "virt" machine type (which we do not if you either > > use virt-9.1 or in the v9.1.0 release). > > > > I've cc'd Eric (smmuv3 maintainer) and Mostafa (author of > > the two-stage support). > > > >> qemu command which I use is as below: > >> > >> qemu-system-aarch64 -machine > >> virt,kernel_irqchip=on,gic-version=3,iommu=smmuv3 \ > >> -kernel Image -initrd minifs.cpio.gz \ > >> -enable-kvm -net none -nographic -m 3G -smp 6 -cpu host \ > >> -append 'rdinit=init console=ttyAMA0 ealycon=pl0ll,0x90000000 maxcpus=3' \ > >> -device > >> pcie-root-port,port=0x8,chassis=0,id=pci.0,bus=pcie.0,multifunction=on,addr=0x2 > >> \ > >> -device pcie-root-port,port=0x9,chassis=1,id=pci.1,bus=pcie.0,addr=0x2.0x1 \ > >> -device > >> virtio-blk-pci,drive=drive0,id=virtblk0,num-queues=8,packed=on,bus=pci.1 \ > >> -drive file=/home/boot.img,if=none,id=drive0,format=raw > >> > >> smmuv3 event 0x10 log: > >> [...] > >> [ 1.962656] virtio-pci 0000:02:00.0: Adding to iommu group 0 > >> [ 1.963150] virtio-pci 0000:02:00.0: enabling device (0000 -> 0002) > >> [ 1.964707] virtio_blk virtio0: 6/0/0 default/read/poll queues > >> [ 1.965759] virtio_blk virtio0: [vda] 2097152 512-byte logical blocks > >> (1.07 GB/1.00 GiB) > >> [ 1.966934] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > >> [ 1.967442] input: gpio-keys as /devices/platform/gpio-keys/input/input0 > >> [ 1.967478] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > >> [ 1.968381] clk: Disabling unused clocks > >> [ 1.968677] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > >> [ 1.968990] PM: genpd: Disabling unused power domains > >> [ 1.969424] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.969814] ALSA device list: > >> [ 1.970240] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.970471] No soundcards found. > >> [ 1.970902] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > >> [ 1.971600] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > >> [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > >> [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.971602] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.971606] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > >> [ 1.971607] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > >> [ 1.974202] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > >> [ 1.974634] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.975005] Freeing unused kernel memory: 10112K > >> [ 1.975062] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.975442] Run init as init process > >> > >> Another information is that if "maxcpus=3" is removed from the kernel > >> command line, > >> it will be OK. > >> > >> I am not sure if there is a bug about vsmmu. It will be very appreciated if > >> anyone > >> know this issue or can take a look at it. > > thanks > > -- PMM > > . Hi Zhou, On Mon, Sep 9, 2024 at 3:22 PM Zhou Wang via wrote: > > Hi All, > > When I tested mainline qemu(commit 7b87a25f49), it reports smmuv3 event 0x10 > during kernel booting up. > > qemu command which I use is as below: > > qemu-system-aarch64 -machine > virt,kernel_irqchip=on,gic-version=3,iommu=smmuv3 \ > -kernel Image -initrd minifs.cpio.gz \ > -enable-kvm -net none -nographic -m 3G -smp 6 -cpu host \ > -append 'rdinit=init console=ttyAMA0 ealycon=pl0ll,0x90000000 maxcpus=3' \ > -device > pcie-root-port,port=0x8,chassis=0,id=pci.0,bus=pcie.0,multifunction=on,addr=0x2 > \ > -device pcie-root-port,port=0x9,chassis=1,id=pci.1,bus=pcie.0,addr=0x2.0x1 \ > -device > virtio-blk-pci,drive=drive0,id=virtblk0,num-queues=8,packed=on,bus=pci.1 \ > -drive file=/home/boot.img,if=none,id=drive0,format=raw > > smmuv3 event 0x10 log: > [...] > [ 1.962656] virtio-pci 0000:02:00.0: Adding to iommu group 0 > [ 1.963150] virtio-pci 0000:02:00.0: enabling device (0000 -> 0002) > [ 1.964707] virtio_blk virtio0: 6/0/0 default/read/poll queues > [ 1.965759] virtio_blk virtio0: [vda] 2097152 512-byte logical blocks > (1.07 GB/1.00 GiB) > [ 1.966934] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > [ 1.967442] input: gpio-keys as /devices/platform/gpio-keys/input/input0 > [ 1.967478] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > [ 1.968381] clk: Disabling unused clocks > [ 1.968677] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > [ 1.968990] PM: genpd: Disabling unused power domains > [ 1.969424] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.969814] ALSA device list: > [ 1.970240] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.970471] No soundcards found. > [ 1.970902] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > [ 1.971600] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.971602] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.971606] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > [ 1.971607] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > [ 1.974202] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > [ 1.974634] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.975005] Freeing unused kernel memory: 10112K > [ 1.975062] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > [ 1.975442] Run init as init process > > Another information is that if "maxcpus=3" is removed from the kernel command > line, > it will be OK. > That's interesting, not sure how that would be related. > I am not sure if there is a bug about vsmmu. It will be very appreciated if > anyone > know this issue or can take a look at it. > Can you please provide logs with adding "-d trace:smmu*" to qemu invocation. Also if possible, can you please provide which Linux kernel version you are using, I will see if I can repro. Thanks, Mostafa > Thanks, > Zhou > > > On 2024/9/9 22:47, Mostafa Saleh wrote: > Hi Zhou, > > On Mon, Sep 9, 2024 at 3:22 PM Zhou Wang via wrote: > > > > Hi All, > > > > When I tested mainline qemu(commit 7b87a25f49), it reports smmuv3 event 0x10 > > during kernel booting up. > > > > qemu command which I use is as below: > > > > qemu-system-aarch64 -machine > > virt,kernel_irqchip=on,gic-version=3,iommu=smmuv3 \ > > -kernel Image -initrd minifs.cpio.gz \ > > -enable-kvm -net none -nographic -m 3G -smp 6 -cpu host \ > > -append 'rdinit=init console=ttyAMA0 ealycon=pl0ll,0x90000000 maxcpus=3' \ > > -device > > pcie-root-port,port=0x8,chassis=0,id=pci.0,bus=pcie.0,multifunction=on,addr=0x2 > > \ > > -device pcie-root-port,port=0x9,chassis=1,id=pci.1,bus=pcie.0,addr=0x2.0x1 \ > > -device > > virtio-blk-pci,drive=drive0,id=virtblk0,num-queues=8,packed=on,bus=pci.1 \ > > -drive file=/home/boot.img,if=none,id=drive0,format=raw > > > > smmuv3 event 0x10 log: > > [...] > > [ 1.962656] virtio-pci 0000:02:00.0: Adding to iommu group 0 > > [ 1.963150] virtio-pci 0000:02:00.0: enabling device (0000 -> 0002) > > [ 1.964707] virtio_blk virtio0: 6/0/0 default/read/poll queues > > [ 1.965759] virtio_blk virtio0: [vda] 2097152 512-byte logical blocks > > (1.07 GB/1.00 GiB) > > [ 1.966934] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > > [ 1.967442] input: gpio-keys as /devices/platform/gpio-keys/input/input0 > > [ 1.967478] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > > [ 1.968381] clk: Disabling unused clocks > > [ 1.968677] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > > [ 1.968990] PM: genpd: Disabling unused power domains > > [ 1.969424] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.969814] ALSA device list: > > [ 1.970240] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.970471] No soundcards found. > > [ 1.970902] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > > [ 1.971600] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > > [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > > [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.971602] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.971606] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > > [ 1.971607] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > > [ 1.974202] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > > [ 1.974634] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.975005] Freeing unused kernel memory: 10112K > > [ 1.975062] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > > [ 1.975442] Run init as init process > > > > Another information is that if "maxcpus=3" is removed from the kernel > > command line, > > it will be OK. > > > > That's interesting, not sure how that would be related. > > > I am not sure if there is a bug about vsmmu. It will be very appreciated if > > anyone > > know this issue or can take a look at it. > > > > Can you please provide logs with adding "-d trace:smmu*" to qemu invocation. Sure. Please see the attached log(using above qemu commit and command). > > Also if possible, can you please provide which Linux kernel version > you are using, I will see if I can repro. I just use the latest mainline kernel(commit b831f83e40a2) with defconfig. Thanks, Zhou > > Thanks, > Mostafa > > > Thanks, > > Zhou > > > > > > > > . qemu_boot_log.txt Description: Text document On Tue, Sep 10, 2024 at 2:51 AM Zhou Wang wrote: > > On 2024/9/9 22:47, Mostafa Saleh wrote: > > Hi Zhou, > > > > On Mon, Sep 9, 2024 at 3:22 PM Zhou Wang via wrote: > >> > >> Hi All, > >> > >> When I tested mainline qemu(commit 7b87a25f49), it reports smmuv3 event > >> 0x10 > >> during kernel booting up. > >> > >> qemu command which I use is as below: > >> > >> qemu-system-aarch64 -machine > >> virt,kernel_irqchip=on,gic-version=3,iommu=smmuv3 \ > >> -kernel Image -initrd minifs.cpio.gz \ > >> -enable-kvm -net none -nographic -m 3G -smp 6 -cpu host \ > >> -append 'rdinit=init console=ttyAMA0 ealycon=pl0ll,0x90000000 maxcpus=3' \ > >> -device > >> pcie-root-port,port=0x8,chassis=0,id=pci.0,bus=pcie.0,multifunction=on,addr=0x2 > >> \ > >> -device pcie-root-port,port=0x9,chassis=1,id=pci.1,bus=pcie.0,addr=0x2.0x1 > >> \ > >> -device > >> virtio-blk-pci,drive=drive0,id=virtblk0,num-queues=8,packed=on,bus=pci.1 \ > >> -drive file=/home/boot.img,if=none,id=drive0,format=raw > >> > >> smmuv3 event 0x10 log: > >> [...] > >> [ 1.962656] virtio-pci 0000:02:00.0: Adding to iommu group 0 > >> [ 1.963150] virtio-pci 0000:02:00.0: enabling device (0000 -> 0002) > >> [ 1.964707] virtio_blk virtio0: 6/0/0 default/read/poll queues > >> [ 1.965759] virtio_blk virtio0: [vda] 2097152 512-byte logical blocks > >> (1.07 GB/1.00 GiB) > >> [ 1.966934] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > >> [ 1.967442] input: gpio-keys as /devices/platform/gpio-keys/input/input0 > >> [ 1.967478] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > >> [ 1.968381] clk: Disabling unused clocks > >> [ 1.968677] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > >> [ 1.968990] PM: genpd: Disabling unused power domains > >> [ 1.969424] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.969814] ALSA device list: > >> [ 1.970240] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.970471] No soundcards found. > >> [ 1.970902] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > >> [ 1.971600] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > >> [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > >> [ 1.971601] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.971602] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.971606] arm-smmu-v3 9050000.smmuv3: event 0x10 received: > >> [ 1.971607] arm-smmu-v3 9050000.smmuv3: 0x0000020000000010 > >> [ 1.974202] arm-smmu-v3 9050000.smmuv3: 0x0000020000000000 > >> [ 1.974634] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.975005] Freeing unused kernel memory: 10112K > >> [ 1.975062] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000 > >> [ 1.975442] Run init as init process > >> > >> Another information is that if "maxcpus=3" is removed from the kernel > >> command line, > >> it will be OK. > >> > > > > That's interesting, not sure how that would be related. > > > >> I am not sure if there is a bug about vsmmu. It will be very appreciated > >> if anyone > >> know this issue or can take a look at it. > >> > > > > Can you please provide logs with adding "-d trace:smmu*" to qemu invocation. > > Sure. Please see the attached log(using above qemu commit and command). > Thanks a lot, it seems the SMMUv3 indeed receives a translation request with addr 0x0 which causes this event. I don't see any kind of modification (alignment) of the address in this path. So my hunch it's not related to the SMMUv3 and the initiator is issuing bogus addresses. > > > > Also if possible, can you please provide which Linux kernel version > > you are using, I will see if I can repro. > > I just use the latest mainline kernel(commit b831f83e40a2) with defconfig. > I see, I can't repro in my setup which has no "--enable-kvm" and with "-cpu max" instead of host. I will try other options and see if I can repro. Thanks, Mostafa > Thanks, > Zhou > > > > > Thanks, > > Mostafa > > > >> Thanks, > >> Zhou > >> > >> > >> > > > > .