IB/uverbs: Add support to advise_mr
authorMoni Shoua <monis@mellanox.com>
Tue, 11 Dec 2018 11:37:52 +0000 (13:37 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 18 Dec 2018 22:19:46 +0000 (15:19 -0700)
commitad8a4496757f6f7344011a20a07195bd27e3989c
tree398c3f6da4ba9337c5993d00f30402cfcf5caec3
parentcbfdd442c43eab8c62bf2ea5127511cd39e9046d
IB/uverbs: Add support to advise_mr

Add new ioctl method for the MR object - ADVISE_MR.

This command can be used by users to give an advice or directions to the
kernel about an address range that belongs to memory regions.

A new ib_device callback, advise_mr(), is introduced here to suupport the
new command. This command takes the following arguments:

- pd: The protection domain to which all memory regions belong
- advice:  The type of the advice
   * IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH - Pre-fetch a range of
an on-demand paging MR
   * IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE - Pre-fetch a range
of an on-demand paging MR with write intention
- flags: The properties of the advice
* IB_UVERBS_ADVISE_MR_FLAG_FLUSH - Operation must end before
return to the caller
- sg_list: The list of memory ranges
- num_sge: The number of memory ranges in the list
- attrs: More attributes to be parsed by the provider

Signed-off-by: Moni Shoua <monis@mellanox.com>
Reviewed-by: Guy Levi <guyle@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/uverbs_std_types_mr.c
include/rdma/ib_verbs.h
include/uapi/rdma/ib_user_ioctl_cmds.h
include/uapi/rdma/ib_user_ioctl_verbs.h