[PATCH for-next v4 0/2] RDMA/rxe: Prefetching pages with explicit ODP

Daisuke Matsuda
2025-05-22T11:20:13Z

There is ibv_advise_mr(3) that can be used by applications to optimize
memory access. This series enables the feature on rxe driver, which has
already been available in mlx5.

There is a tiny change on the rdma-core util.
cf. https://github.com/linux-rdma/rdma-core/pull/1605

Currently, there are regressions in the for-next tree. When running ODP tests,
ib_uverbs and rxe can get stuck respectively. Therefore, to test this series,
please apply the patches to commit e56b4eab9cde ("RDMA/siw: Remove unused
siw_mem_add"). The regressions are under investigation.
cf. https://lore.kernel.org/linux-rdma/20250522083257.GM7435@unreal/T/#t

v2->v3:
- Added return -EOPNOTSUPP; (1st patch)
- Corrected type definitions mismatch (1st patch)

v3->v4:
- merged rxe_init_prefetch_work() to rxe_ib_advise_mr_prefetch() (2nd patch)
- Modified to use per-MR counter to ensure RXE is not destroyed while
the asynchronous task is running (2nd patch)

Daisuke Matsuda (2):
RDMA/rxe: Implement synchronous prefetch for ODP MRs
RDMA/rxe: Enable asynchronous prefetch for ODP MRs

drivers/infiniband/sw/rxe/rxe.c | 7 ++
drivers/infiniband/sw/rxe/rxe_loc.h | 10 ++
drivers/infiniband/sw/rxe/rxe_odp.c | 159 ++++++++++++++++++++++++++++
3 files changed, 176 insertions(+)

--
2.43.0