RE: [PATCH 1/1] IB/iser: Remove hard coded values for cqe and send_wr

Minh Duc Tran
2014-10-20T18:11:41Z

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 1726 bytes --]

>> +++ b/drivers/infiniband/ulp/iser/iser_verbs.c
>> @@ -114,6 +114,9 @@ static int iser_create_device_ib_res(struct iser_device *device)
>> if (IS_ERR(device->pd))
>> goto pd_err;
>>
>> + max_cqe = (dev_attr->max_cqe < ISER_MAX_CQ_LEN) ?
>> + dev_attr->max_cqe : ISER_MAX_CQ_LEN;
>> +

>If I was the ocrdma maintainer I would say load and clear: NO, please.
>Your current offering supports 32 CQs per device, and this means that on 32 core node you will be able to run only iSER, no other ULP.
>Generally, this approach is wrong, causing bad user experience and we will not do that.

Hi Or,

All 32 CQs will never get used. Here are the reasons:
1) current #define ISER_MAX_CQ 4
2) Your proposed TODO "#1. change the number of CQs to be min(num_cpus, 1/2 of what the device can support)"
This would limits the max CQs device supports to 1/2 anyway.

If you don't agree, I like to get your suggestions of what I should do in this case for CQs that have 8k of entries each.

Thanks.
-Minh

>> for (i = 0; i < device->comps_used; i++) {
>> struct iser_comp *comp = &device->comps[i];
>>
>> @@ -122,7 +125,7 @@ static int iser_create_device_ib_res(struct iser_device *device)
>> iser_cq_callback,
>> iser_cq_event_callback,
>> (void *)comp,
>> - ISER_MAX_CQ_LEN, i);
>> + max_cqe, i);

N‹§²æìr¸›yúèšØb²X¬¶Ç§vØ^–)Þº{.nÇ+‰·¥Š{±­ÙšŠ{ayº\x1dÊ‡Ú™ë,j\a­¢f£¢·hš‹»öì\x17/oSc¾™Ú³9˜uÀ¦æå‰È&jw¨®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿïêäz¹Þ–Šàþf£¢·hšˆ§~ˆmš