mbox series

[RFC,rdma-core,0/3] Introduce ibv_advise_mr verb

Message ID 1541428068-17056-1-git-send-email-yishaih@mellanox.com (mailing list archive)
Headers show
Series Introduce ibv_advise_mr verb | expand

Message

Yishai Hadas Nov. 5, 2018, 2:27 p.m. UTC
Overview
========
Today rdma applications can register memory region (MR), deregister and
reregister it.  This patch set introduce a new ibv_advise_mr() verb that will
be used to give advice or directions to the kernel about an address range
that belongs to a MR.

Motivation
==========
Performance - applications that are aware of future access patterns can use
this verb in order to leverage this knowledge to improve system or application
performance.

One example is for pre-fetching a range part of an on-demand paging MR.

On-demand-paging (ODP) is a technique to alleviate much of the shortcomings of
memory registration.  The main idea is that applications no longer pin down the
underlying physical pages of the address space and need not track the validity
of the mappings.  Rather, the HCA requests the latest translations from the OS
when pages are not present, and the OS invalidates translations which are no
longer valid due to mapping changes.  Pre-fetching ODP address ranges, therefore
make them present before the actual IO is conducted.  This would provide a
way to reduce latency by overlapping paging-in and either compute time or IO to
other ranges.

This RFC patch set includes the following:
- Detailed man page for the new ibv_advise_mr verb.
- The initial code implementation for the new verb in libibverbs to demonstrate
  the expected code and usage.

Moni, Aviad, Yishai.


Moni Shoua (3):
  Update kernel headers
  verbs: Add helper for command interface
  verbs: Introduce ibv_advise_mr verb

 kernel-headers/rdma/ib_user_ioctl_cmds.h  |   8 ++
 kernel-headers/rdma/ib_user_ioctl_verbs.h |   9 +++
 libibverbs/CMakeLists.txt                 |   1 +
 libibverbs/cmd_ioctl.h                    |   3 +
 libibverbs/cmd_mr.c                       |  57 ++++++++++++++
 libibverbs/driver.h                       |  10 +++
 libibverbs/dummy_ops.c                    |  11 +++
 libibverbs/libibverbs.map.in              |   1 +
 libibverbs/man/CMakeLists.txt             |   1 +
 libibverbs/man/ibv_advise_mr.3.md         | 125 ++++++++++++++++++++++++++++++
 libibverbs/verbs.h                        |  28 +++++++
 libibverbs/verbs_api.h                    |   6 ++
 12 files changed, 260 insertions(+)
 create mode 100644 libibverbs/cmd_mr.c
 create mode 100644 libibverbs/man/ibv_advise_mr.3.md