Re: [PATCH for-next] RDMA/hns: Support owner mode doorbell

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

 



On Fri, Sep 25, 2020 at 04:23:34PM +0800, Weihang Li wrote:
> From: Lang Cheng <chenglang@xxxxxxxxxx>
>
> The doorbell needs to store PI information into QPC, so the RoCEE should
> wait for the results of storing, that is, it needs two bus operations to
> complete a doorbell. When ROCEE is in SDI mode, multiple doorbells may be
> interlocked because the RoCEE can only handle bus operations serially. So a
> flag to mark if HIP09 is working in SDI mode is added. When the SDI flag is
> set, the ROCEE will ignore the PI information of the doorbell, continue to
> fetch wqe and verify its validity by it's owner_bit.
>
> Signed-off-by: Lang Cheng <chenglang@xxxxxxxxxx>
> Signed-off-by: Weihang Li <liweihang@xxxxxxxxxx>
> ---
>  drivers/infiniband/hw/hns/hns_roce_device.h |  5 ++++-
>  drivers/infiniband/hw/hns/hns_roce_hw_v2.c  | 28 ++++++++++++++++++++++------
>  drivers/infiniband/hw/hns/hns_roce_qp.c     |  3 +++
>  3 files changed, 29 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/infiniband/hw/hns/hns_roce_device.h b/drivers/infiniband/hw/hns/hns_roce_device.h
> index a8183ef..517c127 100644
> --- a/drivers/infiniband/hw/hns/hns_roce_device.h
> +++ b/drivers/infiniband/hw/hns/hns_roce_device.h
> @@ -137,9 +137,10 @@ enum {
>  	SERV_TYPE_UD,
>  };
>
> -enum {
> +enum hns_roce_qp_caps {
>  	HNS_ROCE_QP_CAP_RQ_RECORD_DB = BIT(0),
>  	HNS_ROCE_QP_CAP_SQ_RECORD_DB = BIT(1),
> +	HNS_ROCE_QP_CAP_OWNER_DB = BIT(2),
>  };
>
>  enum hns_roce_cq_flags {
> @@ -229,6 +230,8 @@ enum {
>  	HNS_ROCE_CAP_FLAG_FRMR                  = BIT(8),
>  	HNS_ROCE_CAP_FLAG_QP_FLOW_CTRL		= BIT(9),
>  	HNS_ROCE_CAP_FLAG_ATOMIC		= BIT(10),
> +	HNS_ROCE_CAP_FLAG_SDI_MODE		= BIT(14),
> +	HNS_ROCE_CAP_FLAG_MAX			= BIT(28)

This enum is not used.

Thanks



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux