[26.04_linux-nvidia-bos] UBUNTU: [Config] nvidia: Disable default CMA reservation#403
Draft
nvmochs wants to merge 1 commit intoNVIDIA:26.04_linux-nvidia-bosfrom
Draft
[26.04_linux-nvidia-bos] UBUNTU: [Config] nvidia: Disable default CMA reservation#403nvmochs wants to merge 1 commit intoNVIDIA:26.04_linux-nvidia-bosfrom
nvmochs wants to merge 1 commit intoNVIDIA:26.04_linux-nvidia-bosfrom
Conversation
Set CONFIG_CMA_SIZE_MBYTES=0 for arm64 linux-nvidia kernels. Signed-off-by: Matthew R. Ochs <mochs@nvidia.com>
Contributor
PR Validation ReportPatchscan ✅ No Missing FixesAll cherry-picked commits checked — no missing upstream fixes found. PR Lint ❌ Errors foundDetailsChecking 1 commits...
Cherry-pick digest:
┌──────────────┬───────────────────────────────────────────────┬────────────┬─────────┬───────────────────────────┐
│ Local │ Referenced upstream / Patch subject │ Patch-ID │ Subject │ SoB chain │
├──────────────┼───────────────────────────────────────────────┼────────────┼─────────┼───────────────────────────┤
│ 20632492865c │ [SAUCE] ubuntu: [config] nvidia: disable defa │ N/A │ N/A │ mochs │
└──────────────┴───────────────────────────────────────────────┴────────────┴─────────┴───────────────────────────┘
Lint results:
E: 20632492865c ("UBUNTU: [Config] nvidia: Disable default CMA reser"): not SAUCE/Revert but has no upstream reference trailer (cherry picked from commit ... or backported from ...)
PR metadata:
E: PR targets 26.04_linux-nvidia-bos but body has no 'BugLink:' or 'LP:' https://bugs.launchpad.net/... line
|
Collaborator
|
|
clsotog
approved these changes
May 1, 2026
Collaborator
clsotog
left a comment
There was a problem hiding this comment.
Acked-by: Carol L Soto <csoto@nvidia.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Set
CONFIG_CMA_SIZE_MBYTES=0for arm64 linux-nvidia kernels.This keeps CMA support compiled into the kernel, but stops reserving a default global CMA pool unless one is explicitly requested with the
cma=kernel command-line option.Rationale
The arm64 linux-nvidia kernels previously reserved CMA by default to reduce noisy
cma_alloc()failures seen during SMMUv3 initialization on large NVIDIA systems. After further testing, the default CMA pool does not appear to be required for the affected paths. The DMA/IOMMU allocation paths that try CMA also have fallback paths through the normal page allocator, and testing confirms that SMMUv3 queue allocation continues to succeed withcma=0.Keeping the default CMA pool has become a liability on larger systems because the pool can still be exhausted, which produces misleading kernel log noise even though the allocation fallback succeeds. There is also no existing knob to keep a default CMA pool while suppressing the failed
cma_alloc()messages.Using
CONFIG_CMA_SIZE_MBYTES=0also aligns the arm64 linux-nvidia default with amd64 behavior and with other enterprise arm64 distro kernels, including RHEL and SLES, which useCONFIG_CMA_SIZE_MBYTES=0.Users that need a default CMA reservation can still opt in with the
cma=kernel command-line parameter.Compatibility
The main user-visible change is that CMA-backed dma-heap nodes are not created by default when there is no default CMA area. For example, with CMA reserved the system exposes:
With
cma=0, only the generic system heap remains:This is a compatibility consideration for userspace that explicitly opens the CMA-backed heap names. Generic dma-buf system heap users are unaffected.
Validation
Tested with
cma=0on linux-nvidia arm64 systems and guests, including 4K and 64K kernel combinations.Observed behavior:
cma=00K cma-reserved/proc/meminforeportsCmaTotal: 0 kBandCmaFree: 0 kB__cma_allocfailures/dev/dma_heap/systemremains presentDGX Spark testing also showed a clean boot with
cma=0; the only observed dma-heap difference was the expected disappearance of the CMA-backed heap nodes.