diff options
| author | Jacob Moroni <jmoroni@google.com> | 2026-10-16 18:09:01 +0000 |
|---|---|---|
| committer | Leon Romanovsky <leon@kernel.org> | 2026-10-18 08:11:08 -0400 |
| commit | 9ffd2aa8b53b044a61f939e8fba5ec250c5fddd9 (patch) | |
| tree | b7049820f2419f7b8a9e05f625c1f1e8930029fd /tools/perf/scripts/python | |
| parent | fdfd099222d9de9e2f1b8d69e94494c5489272cc (diff) | |
RDMA/irdma: Fix PBLE_LEVEL_2 FRWR generation
When an FRWR is posted with only 1 page mapped, it uses a
direct mapping, with the page-aligned DMA address provided
in the WQE (reg_addr_pa). This address is obtained by reading
it from the PBLE that was previously populated during ib_map_mr_sg(),
but it did not account for whether the original allocation was
PBLE_LEVEL_1 or PBLE_LEVEL_2 and just assumed it was always level 1.
As a result, it would program incorrect addresses if the MR was
originally allocated as PBLE_LEVEL_2.
Additionally, multi-page PBLE_LEVEL_2 FRWRs were also broken
because it was using the wrong chunk_size.
Fix these issues by correctly populating the stag_info fields
depending on whether it's a PBLE_LEVEL_1 or PBLE_LEVEL_2 MR and
whether more than 1 page has been mapped or not.
Tested with NFS over RDMA running various fio scenarios, with
and without a modified kernel to force it to take the PBLE_LEVEL_2
path.
Fixes: 137d264c6f63 ("RDMA/irdma: Add 2 level PBLE support for FMR")
Suggested-by: Stefan Metzmacher <metze@samba.org>
Link: https://lore.kernel.org/linux-rdma/20261012161135.494544-1-metze@samba.org/
Signed-off-by: Jacob Moroni <jmoroni@google.com>
Link: https://patch.msgid.link/20261016180901.3292775-1-jmoroni@google.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
