RDMA Back port DMA buffer fix
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux-aws (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Medium
|
Tim Gardner | ||
Jammy |
Fix Released
|
Medium
|
Tim Gardner | ||
Kinetic |
Fix Released
|
Medium
|
Tim Gardner |
Bug Description
SRU Justification
[Impact]
When registering a new DMA MR after selecting the best aligned page size
for it, we iterate over the given sglist to split each entry to smaller,
aligned to the selected page size, DMA blocks.
In given circumstances where the sg entry and page size fit certain
sizes and the sg entry is not aligned to the selected page size, the
total size of the aligned pages we need to cover the sg entry is >= 4GB.
Under this circumstances, while iterating page aligned blocks, the
counter responsible for counting how much we advanced from the start of
the sg entry is overflowed because its type is u32 and we pass 4GB in
size. This can lead to an infinite loop inside the iterator function
because the overflow prevents the counter to be larger
than the size of the sg entry.
Fixes: a808273 ("RDMA/verbs: Add a DMA iterator to return aligned contiguous memory blocks")
[Test Plan]
AWS tested
[Where things could go wrong]
What could possibly go wrong with Remote DMA scatter/gather list errors ?
[Other Info]
SF: #00353710
affects: | linux (Ubuntu) → linux-aws (Ubuntu) |
Changed in linux-aws (Ubuntu): | |
status: | Incomplete → New |
Changed in linux-aws (Ubuntu Focal): | |
assignee: | nobody → Tim Gardner (timg-tpi) |
importance: | Undecided → Medium |
status: | New → In Progress |
Changed in linux-aws (Ubuntu Jammy): | |
assignee: | nobody → Tim Gardner (timg-tpi) |
importance: | Undecided → Medium |
status: | New → In Progress |
Changed in linux-aws (Ubuntu Kinetic): | |
assignee: | nobody → Tim Gardner (timg-tpi) |
importance: | Undecided → Medium |
status: | New → In Progress |
Changed in linux-aws (Ubuntu): | |
status: | New → Fix Released |
Changed in linux-aws (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in linux-aws (Ubuntu Jammy): | |
status: | In Progress → Fix Committed |
Changed in linux-aws (Ubuntu Kinetic): | |
status: | In Progress → Fix Committed |
tags: |
added: verification-done-focal verification-done-jammy verification-done-kinetic removed: verification-needed-focal verification-needed-jammy verification-needed-kinetic |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 2004807
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.