From patchwork Mon May 9 16:36:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Howells X-Patchwork-Id: 12843863 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BAECAC433F5 for ; Mon, 9 May 2022 16:36:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239116AbiEIQkJ (ORCPT ); Mon, 9 May 2022 12:40:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47936 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239122AbiEIQkI (ORCPT ); Mon, 9 May 2022 12:40:08 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 7A3641261C for ; Mon, 9 May 2022 09:36:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652114172; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Eyh+GkUIjInk6dzNgMJ6R+vYntN/YZ9qITuyfspnKDk=; b=IpNp/HoqOAd8XoVBl8bp9M/U6WIMOT8/wHC24O1/X4xE/RUdufk7GOfFPdoeqJWNCeblnh XTUNF1vIWdrj7ZKjcba0g8kKqc99sKLUX46in3jxs34/r8CDMe6Oe/RTrt9TMoD9vdSHXa +rWQQxp0i485Lil7W+9xeaWwuS7ZtVw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-96-kfTNfK7UN0ae-0bA17BIZg-1; Mon, 09 May 2022 12:36:09 -0400 X-MC-Unique: kfTNfK7UN0ae-0bA17BIZg-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0E498803D45; Mon, 9 May 2022 16:36:09 +0000 (UTC) Received: from warthog.procyon.org.uk (unknown [10.33.37.67]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9D118415F5F; Mon, 9 May 2022 16:36:07 +0000 (UTC) Subject: [PATCH 0/6] cifs: Use iov_iters down to the network transport From: David Howells To: Steve French Cc: Steve French , linux-cifs@vger.kernel.org, Shyam Prasad N , Rohith Surabattula , dhowells@redhat.com, Shyam Prasad N , Rohith Surabattula , Jeff Layton , Al Viro , linux-cifs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Date: Mon, 09 May 2022 17:36:06 +0100 Message-ID: <165211416682.3154751.17287804906832979514.stgit@warthog.procyon.org.uk> User-Agent: StGit/1.4 MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 Precedence: bulk List-ID: X-Mailing-List: linux-cifs@vger.kernel.org Hi Steve, Here's a subset of my cifs-experimental branch. It alters the cifs driver to pass iov_iters down to the lowest layers where they can be passed to the network transport. I've fixed a couple of bugs in it also, including the RCU warning you were seeing. I'm seeing some slow calls, however, but I'm not sure how to debug them. RDMA also needs looking at, but I'm not sure how the RDMA API works. I've pushed the patches here also: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=cifs-for-sfrench David --- David Howells (6): iov_iter: Add a function to extract an iter's buffers to a bvec iter iov_iter: Add a general purpose iteration function cifs: Add some helper functions cifs: Add a function to read into an iter from a socket cifs: Change the I/O paths to use an iterator rather than a page list cifs: Remove unused code fs/cifs/cifsencrypt.c | 40 +- fs/cifs/cifsfs.h | 3 + fs/cifs/cifsglob.h | 28 +- fs/cifs/cifsproto.h | 11 +- fs/cifs/cifssmb.c | 225 +++++--- fs/cifs/connect.c | 16 + fs/cifs/file.c | 1263 ++++++++++++++--------------------------- fs/cifs/misc.c | 109 ---- fs/cifs/smb2ops.c | 366 ++++++------ fs/cifs/smb2pdu.c | 12 +- fs/cifs/transport.c | 37 +- include/linux/uio.h | 8 + lib/iov_iter.c | 133 +++++ 13 files changed, 935 insertions(+), 1316 deletions(-)