2012/7/18 Jeff Layton <jlayton@xxxxxxxxxx>: > We currently have a problem with the async write code on CONFIG_HIGHMEM > architectures. It uses *way* too much kmap space. Not only does this > limit throughput by adding an artificial bottleneck, but it also can > lead to deadlocks. > > Late in the 3.5 cycle, I sent some patches to limit the rsize and wsize > on these arches as a temporary workaround. This patchset is a first pass > at fixing this the right way, by teaching the low-level transport code > how to deal with arrays of pages. > > Note that this is just a fix for the write codepaths. The read side will > need a separate set of patches. > > The code seems to work correctly, and is probably suitable for the > upcoming 3.6 merge window. This probably also has some non-trivial > conflicts with Pavel's patches since I did not base this on top of his > SMB2 work. > > Let me know what you plan to merge first for 3.6 and I can try to > fix those up, or we can ask Pavel to rebase his code on top of this. > > Jeff Layton (11): > cifs: remove bogus reset of smb_buf_length in smb_send routines > cifs: rename cifs_sign_smb2 to cifs_sign_smbv > cifs: change signing routines to deal with smb_rqst structs > cifs: convert send code to use smb_rqst structs > cifs: cork the socket before a send and uncork it afterward > cifs: teach smb_send_rqst how to handle arrays of pages > cifs: teach signing routines how to deal with arrays of pages in a > smb_rqst > cifs: change cifs_call_async to use smb_rqst structs > cifs: convert async write code to pass in data via rq_pages array > cifs: remove the kmap size limit from wsize > cifs: add deprecation warning to sockopt=TCP_NODELAY option > > fs/cifs/cifsencrypt.c | 39 +++++++-- > fs/cifs/cifsproto.h | 37 ++++++-- > fs/cifs/cifssmb.c | 53 ++++++------ > fs/cifs/connect.c | 10 ++- > fs/cifs/file.c | 47 ++-------- > fs/cifs/transport.c | 227 ++++++++++++++++++++++++++++++++++++------------- > 6 files changed, 264 insertions(+), 149 deletions(-) > > -- > 1.7.10.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-cifs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html I tested this patchset with cifs and smb2 code with cthon basic test and it was ok - going to review patches tomorrow. -- Best regards, Pavel Shilovsky. -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html