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

John Cabaj john.cabaj at canonical.com
Fri Feb 21 18:46:18 UTC 2025


On 2/6/25 8:56 PM, John Cabaj wrote:
> 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


Applied to noble:linux-azure azure-nvidia branch.


Thanks,
John



More information about the kernel-team mailing list