Re: RDMA (smbdirect) testing

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

 



2022-06-08 2:26 GMT+09:00, Tom Talpey <tom@xxxxxxxxxx>:
> On 6/2/2022 8:07 PM, Long Li wrote:
>>> Long, My Chelsio(iWARP) NIC reports this value as 4. When I set it with
>>> hw
>>> report value in cifs.ko, There is kernel oops in cifs.ko. Have you
>>> checked smb-
>>> direct of cifs.ko with Chelsio and any iWARP NICs before ? or only
>>> Mellanox
>>> NICs ?
>>>
>>> Thanks!
>>
>> Yes, I have tested on Chelsio. I didn't see kernel panic. In fact, I can
>> pass a larger value (8) and successfully create a QP on Chelsio.
>
> There are many generations of Chelsio RDMA adapters, and this number
> is very likely to be different. You both should be sure you're testing
> with multiple configurations (and don't forget all the other in-kernel
> RDMA NICs). But a constant value of "8" is still arbitrary.
>
> The kernel should definitely not throw an oops when the NIC doesn't
> support some precompiled constant value. Namjae, what oops, exactly?
Sorry for noise, This is not cifs.ko issue(with max sge 8). There
seems to be some issue in chelsio driver(cxgb4) on the latest kernel.
I have reported this issue to chelsio maintainers.
They was already aware of this problem and are trying to fix it. When
I checked again on linux-5.15, there was no problem. I am going to
send a reply about this mail after checking it with cxgb4 patch on the
latest kernel, It has not been fixed yet, still waiting for the patch
from them.

Thanks!
>
> Tom.
>
>> Can you paste your kernel panic trace?
>>
>>>>>> If the CIFS upper layer ever sends data with larger number of SGEs,
>>>>>> the send will fail.
>>>>>>
>>>>>> Long
>>>>>>
>>>>>>>
>>>>>>> Tom.
>>>>>>>
>>>>>>>> diff --git a/fs/cifs/smbdirect.h b/fs/cifs/smbdirect.h index
>>>>>>>> a87fca82a796..7003722ab004 100644
>>>>>>>> --- a/fs/cifs/smbdirect.h
>>>>>>>> +++ b/fs/cifs/smbdirect.h
>>>>>>>> @@ -226,7 +226,7 @@ struct smbd_buffer_descriptor_v1 {
>>>>>>>>    } __packed;
>>>>>>>>
>>>>>>>>    /* Default maximum number of SGEs in a RDMA send/recv */
>>>>>>>> -#define SMBDIRECT_MAX_SGE      16
>>>>>>>> +#define SMBDIRECT_MAX_SGE      6
>>>>>>>>    /* The context for a SMBD request */
>>>>>>>>    struct smbd_request {
>>>>>>>>           struct smbd_connection *info; diff --git
>>>>>>>> a/fs/ksmbd/transport_rdma.c b/fs/ksmbd/transport_rdma.c index
>>>>>>>> e646d79554b8..70662b3bd590 100644
>>>>>>>> --- a/fs/ksmbd/transport_rdma.c
>>>>>>>> +++ b/fs/ksmbd/transport_rdma.c
>>>>>>>> @@ -42,7 +42,7 @@
>>>>>>>>    /* SMB_DIRECT negotiation timeout in seconds */
>>>>>>>>    #define SMB_DIRECT_NEGOTIATE_TIMEOUT           120
>>>>>>>>
>>>>>>>> -#define SMB_DIRECT_MAX_SEND_SGES               8
>>>>>>>> +#define SMB_DIRECT_MAX_SEND_SGES               6
>>>>>>>>    #define SMB_DIRECT_MAX_RECV_SGES               1
>>>>>>>>
>>>>>>>>    /*
>>>>>>>>
>>>>>>>> Thanks!
>>>>>>>>>
>>>>>>>>> Tom.
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>



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

  Powered by Linux