Re: [PATCH rdma-next 01/10] RDMA: Add access flags to ib_alloc_mr() and ib_mr_pool_init()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/4/21 10:23 PM, Leon Romanovsky wrote:
> diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
> index bed4cfe50554..59138174affa 100644
> --- a/include/rdma/ib_verbs.h
> +++ b/include/rdma/ib_verbs.h
> @@ -2444,10 +2444,10 @@ struct ib_device_ops {
>  				       struct ib_udata *udata);
>  	int (*dereg_mr)(struct ib_mr *mr, struct ib_udata *udata);
>  	struct ib_mr *(*alloc_mr)(struct ib_pd *pd, enum ib_mr_type mr_type,
> -				  u32 max_num_sg);
> +				  u32 max_num_sg, u32 access);
>  	struct ib_mr *(*alloc_mr_integrity)(struct ib_pd *pd,
>  					    u32 max_num_data_sg,
> -					    u32 max_num_meta_sg);
> +					    u32 max_num_meta_sg, u32 access);
>  	int (*advise_mr)(struct ib_pd *pd,
>  			 enum ib_uverbs_advise_mr_advice advice, u32 flags,
>  			 struct ib_sge *sg_list, u32 num_sge,
> @@ -4142,11 +4142,10 @@ static inline int ib_dereg_mr(struct ib_mr *mr)
>  }
>  
>  struct ib_mr *ib_alloc_mr(struct ib_pd *pd, enum ib_mr_type mr_type,
> -			  u32 max_num_sg);
> +			  u32 max_num_sg, u32 access);
>  
> -struct ib_mr *ib_alloc_mr_integrity(struct ib_pd *pd,
> -				    u32 max_num_data_sg,
> -				    u32 max_num_meta_sg);
> +struct ib_mr *ib_alloc_mr_integrity(struct ib_pd *pd, u32 max_num_data_sg,
> +				    u32 max_num_meta_sg, u32 access);
>  
>  /**
>   * ib_update_fast_reg_key - updates the key portion of the fast_reg MR
> diff --git a/include/rdma/mr_pool.h b/include/rdma/mr_pool.h
> index e77123bcb43b..2a0ee791037d 100644
> --- a/include/rdma/mr_pool.h
> +++ b/include/rdma/mr_pool.h
> @@ -11,7 +11,8 @@ struct ib_mr *ib_mr_pool_get(struct ib_qp *qp, struct list_head *list);
>  void ib_mr_pool_put(struct ib_qp *qp, struct list_head *list, struct ib_mr *mr);
>  
>  int ib_mr_pool_init(struct ib_qp *qp, struct list_head *list, int nr,
> -		enum ib_mr_type type, u32 max_num_sg, u32 max_num_meta_sg);
> +		    enum ib_mr_type type, u32 max_num_sg, u32 max_num_meta_sg,
> +		    u32 access);
>  void ib_mr_pool_destroy(struct ib_qp *qp, struct list_head *list);
>  
>  #endif /* _RDMA_MR_POOL_H */

Does the new 'access' argument only control whether or not PCIe relaxed
ordering is enabled? It seems wrong to me to make enabling of PCIe
relaxed ordering configurable. I think this mechanism should be enabled
unconditionally if the HCA supports it.

Thanks,

Bart.



[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux