** Also affects: linux-nvidia-6.14 (Ubuntu)
Importance: Undecided
Status: New
** No longer affects: linux-nvidia (Ubuntu)
** Also affects: linux-nvidia-6.14 (Ubuntu Noble)
Importance: Undecided
Status: New
** Changed in: linux-nvidia-6.14 (Ubuntu)
Status: New => Invalid
** Changed in: linux-nvidia-6.14 (Ubuntu Noble)
Status: New => Fix Committed
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux-nvidia in Ubuntu.
https://bugs.launchpad.net/bugs/2119656
Title:
Backport support for Grace virtualization features: vEVENTQ, HW QUEUE,
and vEGM
Status in linux-nvidia-6.14 package in Ubuntu:
Invalid
Status in linux-nvidia-6.14 source package in Noble:
Fix Committed
Bug description:
These patches enable additional virtualization features on the Grace
platform and are needed in the linux-nvidia 6.14-HWE.
The vEVENTQ and HW QUEUE features (and dependent patches) are upstream
(as of v6.17-rc1):
[PATCH v2 0/7] iommu: Add MSI mapping support with nested SMMU (Part-1 core)
lore: https://lore.kernel.org/linux-iommu/[email protected]/
1f7df3a69174 genirq/msi: Store the IOMMU IOVA directly in msi_desc instead of
iommu_cookie
9349887e9300 genirq/msi: Refactor iommu_dma_compose_msi_msg()
288683c92b1a iommu: Make iommu_dma_prepare_msi() into a generic operation
96093fe54f48 irqchip: Have CONFIG_IRQ_MSI_IOMMU be selected by irqchips that
need it
748706d7ca06 iommu: Turn fault_data to iommufd private pointer
40f5175d0eb7 iommufd: Implement sw_msi support natively
[PATCH v1 0/2] iommufd: Allocate attach_handle for any HWPT
lore:
https://lore.kernel.org/linux-iommu/[email protected]/
fb21b1568ada iommufd: Make attach_handle generic than fault specific
dc10ba25d43f iommufd/fault: Remove
iommufd_fault_domain_attach/detach/replace_dev()
[PATCH v9 00/14] iommufd: Add vIOMMU infrastructure (Part-3: vEVENTQ)
lore: https://lore.kernel.org/all/[email protected]/
dbf00d7d8912 iommufd/fault: Move two fault functions out of the header
927dabc9aa4d iommufd/fault: Add an iommufd_fault_init() helper
5426a78bebef iommufd: Abstract an iommufd_eventq from iommufd_fault
0507f337fc0c iommufd: Rename fault.c to eventq.c
e36ba5ab808e iommufd: Add IOMMUFD_OBJ_VEVENTQ and IOMMUFD_CMD_VEVENTQ_ALLOC
ea94b211c548 iommufd/viommu: Add iommufd_viommu_get_vdev_id helper
e8e1ef9b77a7 iommufd/viommu: Add iommufd_viommu_report_event helper
941d0719aa66 iommufd/selftest: Require vdev_id when attaching to a nested
domain
b3cc0b7599cc iommufd/selftest: Add IOMMU_TEST_OP_TRIGGER_VEVENT for vEVENTQ
coverage
97717a1f283f iommufd/selftest: Add IOMMU_VEVENTQ_ALLOC test coverage
2ec0458eb0e5 Documentation: userspace-api: iommufd: Update FAULT and VEVENTQ
f0ea207ed781 iommu/arm-smmu-v3: Introduce struct arm_smmu_vmaster
e7d3fa3d29d5 iommu/arm-smmu-v3: Report events that belong to devices attached
to vIOMMU
da0c56520e88 iommu/arm-smmu-v3: Set MEV bit in nested STE for DoS mitigations`
41464a4628f3 iommufd: Initialize the flags of vevent in
iommufd_viommu_report_event()
6fc85bbbeaea iommufd: Balance veventq->num_events inc/dec
[PATCH v5 0/3] iommu: Clean up cookie and sw_msi in struct iommu_domain
lore: https://lore.kernel.org/all/[email protected]/
6aa63a4ec947 iommu: Sort out domain user data
ec031e1b35de iommufd: Move iommufd_sw_msi and related functions to driver.c
06d54f00f3f5 iommu: Drop sw_msi from iommu_domain
[PATCH v11 00/18] iommufd support pasid attach/replace
lore: https://lore.kernel.org/all/[email protected]/
ada14b9f1aab iommu: Require passing new handles to APIs supporting handle
8a9e1e773f60 iommu: Introduce a replace API for device pasid
03c9b102bea6 iommufd: Pass @pasid through the device attach/replace path
bc06f7f66de4 iommufd/device: Only add reserved_iova in non-pasid path
2eaa7f845e14 iommufd/device: Replace idev->igroup with local variable
ba1de6cd41d0 iommufd/device: Add helper to detect the first attach of a group
75f990aef38e iommufd/device: Wrap igroup->hwpt and igroup->device_list into
attach struct
831b40f8416c iommufd/device: Replace device_list with device_array
c0e301b2978d iommufd/device: Add pasid_attach array to track per-PASID attach
ff3f014ebb1e iommufd: Enforce PASID-compatible domain in PASID path
2fb69c602d57 iommufd: Support pasid attach/replace
4c3f4f432c2d iommufd: Enforce PASID-compatible domain for RID
ce15c13e7a14 iommu/vt-d: Add IOMMU_HWPT_ALLOC_PASID support
dbc5f37b4f8a iommufd: Allow allocating PASID-compatible domain
9eb59204d519 iommufd/selftest: Add set_dev_pasid in mock iommu
068e14025158 iommufd/selftest: Add a helper to get test device
c1b52b0a97ae iommufd/selftest: Add test ops to test pasid attach/detach
d57a1fb34255 iommufd/selftest: Add coverage for iommufd pasid attach/detach
[PATCH v9 0/5] vfio-pci support pasid attach/detach
lore: https://lore.kernel.org/all/[email protected]/
7fe6b987166b ida: Add ida_find_first_range()
290641346d0d vfio-iommufd: Support pasid [at|de]tach for physical VFIO devices
ad744ed5dd8b vfio: VFIO_DEVICE_[AT|DE]TACH_IOMMUFD_PT support pasid
803f97298e7d iommufd: Extend IOMMU_GET_HW_INFO to report PASID capability
6d9500bb1ff8 iommufd/selftest: Add coverage for reporting max_pasid_log2 via
IOMMU_HW_INFO
[PATCH v9 00/29] iommufd: Add vIOMMU infrastructure (Part-4 HW QUEUE)
lore: https://lore.kernel.org/all/[email protected]/
b23e09f99977 iommufd: Report unmapped bytes in the error path of
iopt_unmap_iova_range
fca02263f27e iommufd: Correct virt_id kdoc at struct iommu_vdevice_alloc
c50a5de2c465 iommufd/viommu: Explicitly define vdev->virt_id
4b57c057f9e6 iommu: Use enum iommu_hw_info_type for type in hw_info op
3fcf56a2393b iommu: Add iommu_copy_struct_to_user helper
c3436d42f812 iommu: Pass in a driver-level user data structure to viommu_init
op
1976cdf61ce9 iommufd/viommu: Allow driver-specific user data for a vIOMMU
object
afeaf592c1d4 iommufd/selftest: Support user_data in mock_viommu_alloc
0e3e0b0c08e3 iommufd/selftest: Add coverage for viommu data
1c26c3bbdee1 iommufd/access: Add internal APIs for HW queue to use
27b77ea5feaa iommufd/access: Bypass access->ops->unmap for internal use
ed42eee797ff iommufd/viommu: Add driver-defined vDEVICE support
e2e936002258 iommufd/viommu: Introduce IOMMUFD_OBJ_HW_QUEUE and its related
struct
2238ddc2b056 iommufd/viommu: Add IOMMUFD_CMD_HW_QUEUE_ALLOC ioctl
0b37d892d042 iommufd/driver: Add iommufd_hw_queue_depend/undepend() helpers
20896914da8a iommufd/selftest: Add coverage for IOMMUFD_CMD_HW_QUEUE_ALLOC
56e9a0d8e53f iommufd: Add mmap interface
80478a2b450e iommufd/selftest: Add coverage for the new mmap interface
035c9211f05b Documentation: userspace-api: iommufd: Update HW QUEUE
62622a8753fa iommu: Allow an input type in hw_info op
a9f10bab2e50 iommufd: Allow an input data_type via iommu_hw_info
3a35f7d4a467 iommufd/selftest: Update hw_info coverage for an input data_type
61dd912ee02e iommu/arm-smmu-v3-iommufd: Add vsmmu_size/type and vsmmu_init
impl ops
9eb6a666df7f iommu/arm-smmu-v3-iommufd: Add hw_info to impl_ops
1eb468744cca iommu/tegra241-cmdqv: Use request_threaded_irq
589899ee299e iommu/tegra241-cmdqv: Simplify deinit flow in
tegra241_cmdqv_remove_vintf()
81f81db6328b iommu/tegra241-cmdqv: Do not statically map LVCMDQs
4dc0d12474f9 iommu/tegra241-cmdqv: Add user-space use support
32b2d3a57e26 iommu/tegra241-cmdqv: Add IOMMU_VEVENTQ_TYPE_TEGRA241_CMDQV
support
lore: https://patch.msgid.link/r/[email protected]
601b1d0d9395 iommu/tegra241-cmdqv: import IOMMUFD module namespace
lore:
https://lore.kernel.org/all/[email protected]/
5510bd89da24 iommufd: Do not allow _iommufd_object_alloc_ucmd if abort op is
set
The vEGM patches (and dependent ECC patches) are not upstream and
taken as SAUCE.
All of these patches were tested applied over the linux-nvidia 6.14-HWE with
this QEMU branch:
https://github.com/nvmochs/QEMU/tree/smmuv3-accel-07212025_egm
Example command:
qemu-system-aarch64 \
-object iommufd,id=iommufd0 \
-machine hmat=on -machine
virt,accel=kvm,gic-version=3,ras=on,highmem-mmio-size=4T \
-cpu host -smp cpus=4 -m size=16G,slots=2,maxmem=66G -nographic \
-object
memory-backend-file,size=8G,id=m0,mem-path=/hugepages/,prealloc=on,share=off \
-object
memory-backend-file,size=8G,id=m1,mem-path=/hugepages/,prealloc=on,share=off \
-numa node,memdev=m0,cpus=0-3,nodeid=0 -numa node,memdev=m1,nodeid=1 \
-numa node,nodeid=2 -numa node,nodeid=3 -numa node,nodeid=4 -numa
node,nodeid=5\
-numa node,nodeid=6 -numa node,nodeid=7 -numa node,nodeid=8 -numa
node,nodeid=9\
-device pxb-pcie,id=pcie.1,bus_nr=1,bus=pcie.0 -device
arm-smmuv3,primary-bus=pcie.1,id=smmuv3.1,accel=on,cmdqv=on \
-device pcie-root-port,id=pcie.port1,bus=pcie.1,chassis=1,io-reserve=0 \
-device
vfio-pci-nohotplug,host=0009:01:00.0,bus=pcie.port1,rombar=0,id=dev0,iommufd=iommufd0
\
-object acpi-generic-initiator,id=gi0,pci-dev=dev0,node=2 \
-object acpi-generic-initiator,id=gi1,pci-dev=dev0,node=3 \
-object acpi-generic-initiator,id=gi2,pci-dev=dev0,node=4 \
-object acpi-generic-initiator,id=gi3,pci-dev=dev0,node=5 \
-object acpi-generic-initiator,id=gi4,pci-dev=dev0,node=6 \
-object acpi-generic-initiator,id=gi5,pci-dev=dev0,node=7 \
-object acpi-generic-initiator,id=gi6,pci-dev=dev0,node=8 \
-object acpi-generic-initiator,id=gi7,pci-dev=dev0,node=9 \
-bios /usr/share/AAVMF/AAVMF_CODE.fd \
-device nvme,drive=nvme0,serial=deadbeaf1,bus=pcie.0 \
-drive
file=guest.qcow2,index=0,media=disk,format=qcow2,if=none,id=nvme0 \
-device
e1000,romfile=/usr/local/share/qemu/efi-e1000.rom,netdev=net0,bus=pcie.0 \
-netdev user,id=net0,hostfwd=tcp::5558-:22,hostfwd=tcp::5586-:5586
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-nvidia-6.14/+bug/2119656/+subscriptions
--
Mailing list: https://launchpad.net/~kernel-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~kernel-packages
More help : https://help.launchpad.net/ListHelp