Public bug reported:
Description
This PR backports three upstream fixes for tegra241-cmdqv teardown. They move
SMMU teardown to devm, stop VINTF deinit from issuing a CMD_SYNC on a freed
command queue during probe-failure unwind and vIOMMU destroy, and quiesce the
VINTFs on shutdown and kexec.
Commits
7d8c870b84bb iommu/arm-smmu-v3: Manage teardown with devm (upstream
2bd22a0d4050)
3f303b85dd4d iommu/tegra241-cmdqv: Fix CMD_SYNC use-after-free on teardown
(upstream 9ff145a25c5c)
a19853cb9e2f iommu/arm-smmu-v3: Disable the impl before disabling the SMMU
on shutdown (upstream ab0dbf411ace)
Testing
Tested on a Vera host with CMDQV enabled
Boot and DMA: the SMMUs and CMDQVs probe cleanly. NVMe fio wrote and
verified 32 GiB, and NIC transfers arrived intact, in both passthrough and
translated (iommu.passthrough=0) modes.
Host reboot and kexec: kexec plus 3 reboots, including a shutdown with
translated domains active. No oops, CMD_SYNC timeouts or CMDQV errors on
serial, and a clean probe every time.
vIOMMU destroy: QEMU with iommufd, arm-smmuv3,accel=on,cmdqv=on and GPU
passthrough. After both a clean poweroff and a kill -9, the host showed no
errors and the VM restarted cleanly.
Guest reboot and kexec: the same kernel running in the vCMDQ VM survived 3
guest reboots and a guest kexec into translated mode. The guest console showed
no CMD_SYNC timeouts or CMDQV errors, and the guest's CMDQV and VCMDQs probed
cleanly every time.
Probe-failure unwind: forcing the VCMDQ enable to fail with a debug patch
(not included) gives probe ... failed with error -110 and no oops.
** Affects: linux-nvidia (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2173553
Title:
NVIDIA: Backport iommu/smmuv3 fixes for cmdqv teardown
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-nvidia/+bug/2173553/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs