Repository navigation
[26.04_linux-nvidia-bos] NVIDIA: SAUCE: nvme-rdma: size NVFS SGL for GPU pages - #642
Closed
sourabgupta3 wants to merge 2 commits into
Closed
sourabgupta3 wants to merge 2 commits into
sourabgupta3 wants to merge 2 commits into
Conversation
NVMe/RDMA sizes the request scatterlist from the block layer physical segment count. For GDS I/O, contiguous proxy pages do not guarantee that the corresponding 64K GPU pages are physically contiguous, so the NVFS mapper can require more entries than the block layer reports. Use the first request page only to select the allocation size. GPU requests receive enough entries for each 64K GPU page plus a possible boundary crossing, while CPU requests retain the normal physical segment count. All eligible requests still pass through the NVFS mapper so mixed CPU/GPU requests are rejected. Keep integrity, special-payload, and non-read/write requests on the normal block mapping path before inspecting request segments. This ensures data-less discard bios use their NVMe DSM special payload. Signed-off-by: Sourab Gupta <sougupta@nvidia.com>
nvidia-fs submits each I/O from one iovec, but the block layer can merge bios from separate GPU ranges into one request. A request-wide payload bound loses the independent 64K alignment of each bio and can underallocate the NVFS scatterlist. Compute the GPU-page upper bound for every bio and sum the results. Continue taking the maximum with blk_rq_nr_phys_segments(), preserving the existing CPU and single-bio paths. Signed-off-by: Sourab Gupta <sougupta@nvidia.com>
Collaborator
BaseOS Kernel ReviewTip ✅ Review passedNo issues found across the reviewed commits. Findings: none 🔍 Review artifacts
📦 Build checks — 🟢 4/4 passed
Note Build reports and debs are retained for 10 days after the PR closes.
Review metadata
This comment is maintained by BaseOS Reviewer and updated when the GitHub watcher publishes a newer review. |
Contributor
PR Validation ReportPatchscan ✅ No Missing FixesAll cherry-picked commits checked — no missing upstream fixes found. PR Lint ❌ Errors foundDetailsChecking 2 commits... Cherry-pick digest: ┌──────────────┬──────────────────────────────────────────────────────────────────┬────────────┬─────────┬───────────────────────────┐ │ Local │ Referenced upstream / Patch subject │ Patch-ID │ Subject │ SoB chain │ ├──────────────┼──────────────────────────────────────────────────────────────────┼────────────┼─────────┼───────────────────────────┤ │ 022a38e58506 │ [SAUCE] nvme-rdma: size nvfs sgl per bio │ N/A │ N/A │ sougupta │ ├──────────────┼──────────────────────────────────────────────────────────────────┼────────────┼─────────┼───────────────────────────┤ │ ad1704502fdb │ [SAUCE] nvme-rdma: size nvfs sgl for gpu pages │ N/A │ N/A │ sougupta │ └──────────────┴──────────────────────────────────────────────────────────────────┴────────────┴─────────┴───────────────────────────┘ Lint: all checks passed. PR metadata: E: PR targets 26.04_linux-nvidia-bos but body has no https://bugs.launchpad.net/... link |
Collaborator
|
|
Collaborator
|
|
Collaborator
|
Applied to canonical-resolute
Closing. |
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.
NVMe/RDMA sizes the request scatterlist from the block layer physical segment count. For GDS I/O, contiguous proxy pages do not guarantee that the corresponding 64K GPU pages are physically contiguous, so the NVFS mapper can require more entries than the block layer reports.
Classify requests using the first page and, for GPU I/O, allocate enough entries for each 64K GPU page plus a possible boundary crossing. Track whether NVFS allocated the table so CPU requests continue to use the existing allocation and mapping path without a second allocation.