Re: [PATCH v2 for-next 2/2] RDMA/hns: Support userspace configuring congestion control algorithm with QP granularity

From: Junxian Huang
Date: Tue Feb 27 2024 - 02:28:19 EST


Problems below will be fixed in next version.

Thanks,
Junxian

On 2024/2/26 22:06, Jason Gunthorpe wrote:
> On Thu, Feb 22, 2024 at 03:06:20PM +0800, Junxian Huang wrote:
>>>> +enum hns_roce_congest_type_flags {
>>>> + HNS_ROCE_CREATE_QP_FLAGS_DCQCN = 1 << 0,
>>>> + HNS_ROCE_CREATE_QP_FLAGS_LDCP = 1 << 1,
>>>> + HNS_ROCE_CREATE_QP_FLAGS_HC3 = 1 << 2,
>>>> + HNS_ROCE_CREATE_QP_FLAGS_DIP = 1 << 3,
>>>> +};
>>>
>>> Why are these bit flags if they are exclusive?
>>>
>>
>> Our FW uses bit flags. Although there is no direct relationship between
>> FW and ABI, but from the perspective of readability, bit flags are also
>> used consistently here in ABI.
>
> Don't do that in uapi.
>
>>>> +enum hns_roce_create_qp_comp_mask {
>>>> + HNS_ROCE_CREATE_QP_MASK_CONGEST_TYPE = 1 << 1,
>>>
>>> Why 1<<1 not 1<<0?
>>
>> This is to keep consistent with our internal ABI, there are some
>> features not upstream yet.
>
> Nope, pack them tightly. Don't keep an "internal ABI"
>
>>>> @@ -114,6 +128,9 @@ struct hns_roce_ib_alloc_ucontext_resp {
>>>> __u32 reserved;
>>>> __u32 config;
>>>> __u32 max_inline_data;
>>>> + __u8 reserved0;
>>>> + __u8 congest_type;
>>>
>>> Why this layout?
>>
>> Same as the 1<<1 issue, to keep consistent with our internal ABI.
>
> Same answer
>
> Jason