2022년 1월 18일 (화) 오전 8:33, Namjae Jeon <linkinjeon@xxxxxxxxxx>님이 작성: > > 2022-01-10 10:37 GMT+09:00, Hyunchul Lee <hyc.lee@xxxxxxxxx>: > > 2022년 1월 9일 (일) 오후 9:56, Namjae Jeon <linkinjeon@xxxxxxxxxx>님이 작성: > >> > >> 2022-01-09 15:44 GMT+09:00, Steve French <smfrench@xxxxxxxxx>: > >> > Do you have more detail on what the negotiated readsize/writesize > >> > would be for Windows clients with this size? for Linux clients? > >> Hyunchul, Please answer. > >> > > > > For a Linux client, if connected using smb-direct, > > the size will be 1048512. But connected with multichannel, > > the size will be 4MB instead of 1048512. And this causes > > problems because the read/write size is bigger than 1048512. > > It looks like a bug. I have to limit the ksmbd's SMB2 maximum > > read/write size for a test. > > > > For Windows clients, the actual read/write size is less than > > 1048512. > In the case of my Chelsio device, Need to set it to about > 512K(512*1024 - 64) for it to work. > The 1048512 value seems insufficient to cover all devices. Is there > any other way to set the minimum read/write value? Calibrate this > minimum value by looking at > the device information? For example variables in ib_dev->attrs. > Let me check it. But I think multiple buffer descriptors caused this problem. because of a client's device limitation, a client seems to send a read/write request with multiple buffer descriptors for sending 1048512 bytes. To check this assumption, can you tell me the buffer descriptors' content when the default read/write size is 1048512? > > > >> > > >> > It looked like it would still be 4MB at first glance (although in > >> > theory some Windows could do 8MB) ... I may have missed something > >> I understood that multiple-buffer descriptor support was required to > >> set a read/write size of 1MB or more. As I know, Hyunchul is currently > >> working on it. > >> It seems to be set to the smaller of max read/write size in smb-direct > >> negotiate and max read/write size in smb2 negotiate. > >> > >> Hyunchul, I have one question more, How did you get 1048512 setting value > >> ? > >> > > > > > I remember when the size was 1MB, Windows clients requested read/write with > > 1048512 and 64. > > > >> > On Sat, Jan 8, 2022 at 8:43 PM Namjae Jeon <linkinjeon@xxxxxxxxxx> > >> > wrote: > >> >> > >> >> 2022-01-07 14:45 GMT+09:00, Hyunchul Lee <hyc.lee@xxxxxxxxx>: > >> >> > Due to restriction that cannot handle multiple > >> >> > buffer descriptor structures, decrease the maximum > >> >> > read/write size for Windows clients. > >> >> > > >> >> > And set the maximum fragmented receive size > >> >> > in consideration of the receive queue size. > >> >> > > >> >> > Signed-off-by: Hyunchul Lee <hyc.lee@xxxxxxxxx> > >> >> Acked-by: Namjae Jeon <linkinjeon@xxxxxxxxxx> > >> > > >> > > >> > > >> > -- > >> > Thanks, > >> > > >> > Steve > >> > > > > > > > > > -- > > Thanks, > > Hyunchul > > -- Thanks, Hyunchul