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>
This commit is contained in:

committed by
Jason Gunthorpe

parent
cbfdd442c4
commit
ad8a449675
@@ -147,12 +147,20 @@ enum uverbs_attrs_reg_dm_mr_cmd_attr_ids {
|
||||
enum uverbs_methods_mr {
|
||||
UVERBS_METHOD_DM_MR_REG,
|
||||
UVERBS_METHOD_MR_DESTROY,
|
||||
UVERBS_METHOD_ADVISE_MR,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_mr_destroy_ids {
|
||||
UVERBS_ATTR_DESTROY_MR_HANDLE,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_advise_mr_cmd_attr_ids {
|
||||
UVERBS_ATTR_ADVISE_MR_PD_HANDLE,
|
||||
UVERBS_ATTR_ADVISE_MR_ADVICE,
|
||||
UVERBS_ATTR_ADVISE_MR_FLAGS,
|
||||
UVERBS_ATTR_ADVISE_MR_SGE_LIST,
|
||||
};
|
||||
|
||||
enum uverbs_attrs_create_counters_cmd_attr_ids {
|
||||
UVERBS_ATTR_CREATE_COUNTERS_HANDLE,
|
||||
};
|
||||
|
@@ -157,4 +157,13 @@ enum ib_uverbs_read_counters_flags {
|
||||
IB_UVERBS_READ_COUNTERS_PREFER_CACHED = 1 << 0,
|
||||
};
|
||||
|
||||
enum ib_uverbs_advise_mr_advice {
|
||||
IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH,
|
||||
IB_UVERBS_ADVISE_MR_ADVICE_PREFETCH_WRITE,
|
||||
};
|
||||
|
||||
enum ib_uverbs_advise_mr_flag {
|
||||
IB_UVERBS_ADVISE_MR_FLAG_FLUSH = 1 << 0,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user