[SRU][PULL][noble:linux-azure-nvidia] Grace CMDQV Support

John Cabaj john.cabaj at canonical.com
Fri Feb 7 02:56:00 UTC 2025


BugLink: https://bugs.launchpad.net/bugs/2097573

SRU Justification

[Impact]

* Microsoft requested patches to support virtual command queues via 
CMDQV hardware

[Fix]

* 7 clean cherry-picks from upstream
* 5 simple backports from upstream
* 2 patches to enable CONFIG_TEGRA241_CMDQV

[Test Plan]

* Compile tested
* Boot tested
* Will be further tested by Microsoft

[Regression potential]

* Most changes limited to drivers/iommu/arm/arm-smmu-v3/
* One change to generic drivers/iommu/iommu.c code, which required 
backport. However, this patch was upstream, and the conflict was trivial
* Choosing to apply an independent patchset to iommu and leaving some 
context carries some risk that the patchset is dependent on previous 
patches not yet applied. This regression should be largely mitigated as 
Microsoft is performing thorough testing on their end.

[Other info]

* SF#00405821

----------------------------------------------------------------

The following changes since commit 7f65875bb8216a735ae674e4593d0d24af29ef3e:

   UBUNTU: Ubuntu-azure-nvidia-6.8.0-1009.9 (2025-01-16 09:27:26 -0600)

are available in the Git repository at:

  
https://git.launchpad.net/~john-cabaj/ubuntu/+source/linux-azure/+git/azure-nvidia 
iommo_patches

for you to fetch changes up to a268d8a07e2b9645e2a940ec32a430d35c15e9bf:

   UBUNTU: [Config] azure-nvidia: Enabling CONFIG_TEGRA241_CMDQV support 
(2025-02-06 20:53:24 -0600)

----------------------------------------------------------------
Jason Gunthorpe (2):
       iommu/arm-smmu-v3: Add struct arm_smmu_impl_ops
       iommu: Allow IOMMU_RESV_DIRECT to work on ARM

John Cabaj (2):
       UBUNTU: SAUCE: iommu: Only allow CONFIG_TEGRA241_CMDQV if 
CONFIG_ARM_SMMU_V3
       UBUNTU: [Config] azure-nvidia: Enabling CONFIG_TEGRA241_CMDQV support

Nate Watterson (1):
       iommu/arm-smmu-v3: Add in-kernel support for NVIDIA Tegra241 
(Grace) CMDQV

Nicolin Chen (9):
       iommu/arm-smmu-v3: Issue a batch of commands to the same cmdq
       iommu/arm-smmu-v3: Pass in cmdq pointer to 
arm_smmu_cmdq_build_sync_cmd
       iommu/arm-smmu-v3: Pass in cmdq pointer to arm_smmu_cmdq_init
       iommu/arm-smmu-v3: Make symbols public for CONFIG_TEGRA241_CMDQV
       iommu/arm-smmu-v3: Add ARM_SMMU_OPT_TEGRA241_CMDQV
       iommu/arm-smmu-v3: Add acpi_smmu_iort_probe_model for impl
       iommu/arm-smmu-v3: Start a new batch if new command is not supported
       iommu/tegra241-cmdqv: Limit CMDs for VCMDQs of a guest owned VINTF
       iommu/tegra241-cmdqv: Read SMMU IDR1.CMDQS instead of hardcoding

  MAINTAINERS                                    |   1 +
  debian.azure-nvidia/config/annotations         |   3 +
  drivers/iommu/Kconfig                          |  13 ++
  drivers/iommu/arm/arm-smmu-v3/Makefile         |   6 +-
  drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c    | 203 
++++++++++++++++++++++++-------
  drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h    |  40 +++++++
  drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c | 893 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  drivers/iommu/iommu.c                          |  21 ++++
  8 files changed, 1134 insertions(+), 46 deletions(-)
  create mode 100644 drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c



More information about the kernel-team mailing list