From patchwork Fri Oct 26 15:45:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 10657609 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C96425A4 for ; Fri, 26 Oct 2018 15:45:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BF0022C472 for ; Fri, 26 Oct 2018 15:45:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B063C2C989; Fri, 26 Oct 2018 15:45:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 99B952C472 for ; Fri, 26 Oct 2018 15:45:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726159AbeJ0AXC (ORCPT ); Fri, 26 Oct 2018 20:23:02 -0400 Received: from mail-co1nam03on0133.outbound.protection.outlook.com ([104.47.40.133]:52285 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726113AbeJ0AXC (ORCPT ); Fri, 26 Oct 2018 20:23:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=93fKd0Mg9/wyp39MDFVMWsCoVtWSwg8HkyVW6Xw8TcA=; b=J+vKSnQLIo5REzotjvlkLhr5ktIDavJPzF1fmcurlecINBsoG/LjpCGKR4dpeBZq6KJECV4bVEdr1E+mOx6pfLgVToNenv9CnNpM5B5juXkF2l01p0JGhGU1BFjufLx0sBQdjhGUIq2ESWrpSMKk+X7MqoOgaopbclyNnN9NKZM= Received: from SN6PR13MB2494.namprd13.prod.outlook.com (52.135.95.148) by SN6PR13MB2288.namprd13.prod.outlook.com (52.135.94.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.12; Fri, 26 Oct 2018 15:45:21 +0000 Received: from SN6PR13MB2494.namprd13.prod.outlook.com ([fe80::205a:69c2:1cf5:b475]) by SN6PR13MB2494.namprd13.prod.outlook.com ([fe80::205a:69c2:1cf5:b475%3]) with mapi id 15.20.1294.014; Fri, 26 Oct 2018 15:45:21 +0000 From: Trond Myklebust To: "torvalds@linux-foundation.org" CC: "linux-kernel@vger.kernel.org" , "linux-nfs@vger.kernel.org" Subject: [GIT PULL] Please pull NFS client changes for Linux 4.20. Thread-Topic: [GIT PULL] Please pull NFS client changes for Linux 4.20. Thread-Index: AQHUbULmNFtCgrNwxU+PaaX/lXso7Q== Date: Fri, 26 Oct 2018 15:45:20 +0000 Message-ID: <6bbed95d83465dde644c6f66acc73e3cd94f123e.camel@hammerspace.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=trondmy@hammerspace.com; x-originating-ip: [68.40.195.73] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;SN6PR13MB2288;6:kH7xEwkkvsSzwS0FIahiyNLr71fHvRFzbFgELtfgnz26WR5C/9KTk7NEKQHHgsSfiexLaALHqfeXVYlsM+vrM0rFC3FIkqIsxH4jGdbNaNaWgxvWyHP+VxtTN30I9PySblt7UrU45/WMGqSDdpCZW/Z6D8z/+M6SQvrS7uWWGcR/X8k5HR5hGbwuFfFzMTI9mO9ZGpmpsJKM5FhK54fFLtQsM82SFZFWI+iBi3P16fGchbEOG4hn86vseAJpT3KYCV9jUfrSNdUbtYXFsSGORiXA9oc11yuy5YMNLrb/LZf0hgOxbR9/8QUMTeEHIWJsb8Asn4laTujw9S1HpgPRBO7/LTEofd2/B5Tp2icsYuUKkEJTN9/orhLFgTMAglu+2srrhlEK47TA2AwuBY6HspqaQumiRdvgERqvnZFmkVXd/QED9xMm1t8JvdI+1FJtVBggJSDQZDINOXr/gbVjgA==;5:bDLxHbOEakLA0E8wYGykHJ0e7YpnN4kd6Sdmc40MfNSdACokVeoFLla9KcZV0P2D9XzaY+pDwySZbkBqxR+r43dD+cOS6erBJPQeQ/EbcSf2rzdCkMurVligeU46RXfw5JdfDIQws6Ez7AHU1i8/V+c6vJ1RGWNUwiqVaw5Sbwg=;7:HUUzyfL5QcQNpJNguu3MtCpVfjaIudQ1J1migK2i9vFFM6VP9MQ/I5Qg0jzszHvvXP51/ENLfG6gpqqLYn3RDpaKvrYGJzzp3VhiCbn8E3u1ej3hLjIoyVcHhoZRrg4fwJuh7voKpP9z57jQdFFCkg== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: fc6ba561-9ca7-4f77-cbd7-08d63b5a0980 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:SN6PR13MB2288; x-ms-traffictypediagnostic: SN6PR13MB2288: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(5213294742642)(21532816269658)(158342451672863)(788757137089); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(3231355)(944501410)(52105095)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123560045)(20161123558120)(201708071742011)(7699051)(76991095);SRVR:SN6PR13MB2288;BCL:0;PCL:0;RULEID:;SRVR:SN6PR13MB2288; x-forefront-prvs: 083751FCA6 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(346002)(396003)(366004)(39830400003)(376002)(136003)(199004)(189003)(2906002)(36756003)(99286004)(106356001)(71200400001)(71190400001)(8936002)(105586002)(2351001)(118296001)(3846002)(6116002)(14444005)(316002)(256004)(6916009)(66066001)(86362001)(575784001)(4326008)(97736004)(4001150100001)(14454004)(5250100002)(305945005)(53936002)(478600001)(6506007)(476003)(2900100001)(6512007)(1730700003)(54906003)(186003)(2501003)(6486002)(7736002)(5640700003)(81156014)(81166006)(25786009)(5660300001)(6436002)(68736007)(8676002)(2616005)(102836004)(486006)(26005);DIR:OUT;SFP:1102;SCL:1;SRVR:SN6PR13MB2288;H:SN6PR13MB2494.namprd13.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: hammerspace.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: sFhA6ZFYQVte4xSIzxEHw4qOSKhd8N8vbEc2E1i0yeYH/j30GbN3oUfC6pl0pXjDs89m1Y38vNA/rXKy5dFJ75BtGIs+e2sdzb9Pv5np2qdLS5pEfL0rAWRatmTU4Ili24ik60ioqJikTQQbLfxZ9kQ/+anCMdWXsM2E570ixAh6ZFxgK3VuY2fe73JUkmlob/KFKX1pN50GK3hgBEzRdrl6jK5sPLSfrDucb4+ccO3c5HqoZUNLt9Wof2PaFlfYUEdZrHos0RrJIQYPdPGXygAn07x20hYwOTl3CrZqvmLisukwCUAbROn00HkQv4jUDuDPqRjbxrc0gJ2VsWu50Dv+6Un/jkkiE+hlOmy5mBE= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc6ba561-9ca7-4f77-cbd7-08d63b5a0980 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Oct 2018 15:45:20.9523 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR13MB2288 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi Linus, The following changes since commit 17b57b1883c1285f3d0dc2266e8f79286a7bef38: Linux 4.19-rc6 (2018-09-30 07:15:35 -0700) are available in the Git repository at: git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-4.20-1 for you to fetch changes up to 331bc71cb1751d78f6807ad8e6162b07c67cdd1b: SUNRPC: Convert the auth cred cache to use refcount_t (2018-10-23 12:24:33 -0400) Cheers Trond ---------------------------------------------------------------- NFS client updates for Linux 4.20 Highlights include: Stable fixes: - Fix the NFSv4.1 r/wsize sanity checking - Reset the RPC/RDMA credit grant properly after a disconnect - Fix a missed page unlock after pg_doio() Features and optimisations: - Overhaul of the RPC client socket code to eliminate a locking bottleneck and reduce the latency when transmitting lots of requests in parallel. - Allow parallelisation of the RPCSEC_GSS encoding of an RPC request. - Convert the RPC client socket receive code to use iovec_iter() for improved efficiency. - Convert several NFS and RPC lookup operations to use RCU instead of taking global locks. - Avoid the need for BH-safe locks in the RPC/RDMA back channel. Bugfixes and cleanups: - Fix lock recovery during NFSv4 delegation recalls - Fix the NFSv4 + NFSv4.1 "lookup revalidate + open file" case. - Fixes for the RPC connection metrics - Various RPC client layer cleanups to consolidate stream based sockets - RPC/RDMA connection cleanups - Simplify the RPC/RDMA cleanup after memory operation failures - Clean ups for NFS v4.2 copy completion and NFSv4 open state reclaim. ---------------------------------------------------------------- Anna Schumaker (4): NFS: Split out the body of nfs4_reclaim_open_state() NFS: Reduce indentation of the switch statement in nfs4_reclaim_open_state() NFS: Reduce indentation of nfs4_recovery_handle_error() NFSv4: Split out NFS v4.2 copy completion functions Arnd Bergmann (1): SUNRPC: use cmpxchg64() in gss_seq_send64_fetch_and_inc() Benjamin Coddington (2): nfs: Fix a missed page unlock after pg_doio() nfs: remove redundant call to nfs_context_set_write_error() Chuck Lever (20): xprtrdma: xprt_release_rqst_cong is called outside of transport_lock xprtrdma: Reset credit grant properly after a disconnect xprtrdma: Create more MRs at a time xprtrdma: Explicitly resetting MRs is no longer necessary xprtrdma: Name MR trace events consistently sunrpc: Fix connect metrics sunrpc: Report connect_time in seconds xprtrdma: Rename rpcrdma_conn_upcall xprtrdma: Conventional variable names in rpcrdma_conn_upcall xprtrdma: Eliminate "connstate" variable from rpcrdma_conn_upcall() xprtrdma: Re-organize the switch() in rpcrdma_conn_upcall xprtrdma: Simplify RPC wake-ups on connect xprtrdma: Rename rpcrdma_qp_async_error_upcall xprtrdma: Remove memory address of "ep" from an error message xprtrdma: Don't disable BH's in backchannel server xprtrdma: Move rb_flags initialization xprtrdma: Report when there were zero posted Receives xprtrdma: Add documenting comments xprtrdma: Clean up xprt_rdma_disconnect_inject xprtrdma: Squelch a sparse warning Frank Sorenson (1): NFS: change sign of nfs_fh length J. Bruce Fields (1): sunrpc: safely reallow resvport min/max inversion Olga Kornievskaia (1): NFSv4.x: fix lock recovery during delegation recall Tigran Mkrtchyan (1): nfs4: flex_file: ignore synthetic uid/gid for tightly coupled DSes Trond Myklebust (67): SUNRPC: Clean up initialisation of the struct rpc_rqst SUNRPC: If there is no reply expected, bail early from call_decode SUNRPC: The transmitted message must lie in the RPCSEC window of validity SUNRPC: Simplify identification of when the message send/receive is complete SUNRPC: Avoid holding locks across the XDR encoding of the RPC message SUNRPC: Rename TCP receive-specific state variables SUNRPC: Move reset of TCP state variables into the reconnect code SUNRPC: Add socket transmit queue offset tracking SUNRPC: Simplify dealing with aborted partially transmitted messages SUNRPC: Refactor the transport request pinning SUNRPC: Add a helper to wake up a sleeping rpc_task and set its status SUNRPC: Test whether the task is queued before grabbing the queue spinlocks SUNRPC: Don't wake queued RPC calls multiple times in xprt_transmit SUNRPC: Rename xprt->recv_lock to xprt->queue_lock SUNRPC: Refactor xprt_transmit() to remove the reply queue code SUNRPC: Refactor xprt_transmit() to remove wait for reply code SUNRPC: Minor cleanup for call_transmit() SUNRPC: Distinguish between the slot allocation list and receive queue SUNRPC: Add a transmission queue for RPC requests SUNRPC: Refactor RPC call encoding SUNRPC: Fix up the back channel transmit SUNRPC: Treat the task and request as separate in the xprt_ops->send_request() SUNRPC: Don't reset the request 'bytes_sent' counter when releasing XPRT_LOCK SUNRPC: Simplify xprt_prepare_transmit() SUNRPC: Move RPC retransmission stat counter to xprt_transmit() SUNRPC: Improve latency for interactive tasks SUNRPC: Support for congestion control when queuing is enabled SUNRPC: Enqueue swapper tagged RPCs at the head of the transmit queue SUNRPC: Allow calls to xprt_transmit() to drain the entire transmit queue SUNRPC: Allow soft RPC calls to time out when waiting for the XPRT_LOCK SUNRPC: Turn off throttling of RPC slots for TCP sockets SUNRPC: Clean up transport write space handling SUNRPC: Cleanup: remove the unused 'task' argument from the request_send() SUNRPC: Don't take transport->lock unnecessarily when taking XPRT_LOCK SUNRPC: Convert xprt receive queue to use an rbtree SUNRPC: Fix priority queue fairness SUNRPC: Convert the xprt->sending queue back to an ordinary wait queue SUNRPC: Add a label for RPC calls that require allocation on receive SUNRPC: Add a bvec array to struct xdr_buf for use with iovec_iter() SUNRPC: Simplify TCP receive code by switching to using iterators SUNRPC: Clean up - rename xs_tcp_data_receive() to xs_stream_data_receive() SUNRPC: Allow AF_LOCAL sockets to use the generic stream receive SUNRPC: Clean up xs_udp_data_receive() SUNRPC: Unexport xdr_partial_copy_from_skb() pNFS: Don't zero out the array in nfs4_alloc_pages() pNFS: Don't allocate more pages than we need to fit a layoutget response NFS: Convert lookups of the lock context to RCU NFS: Simplify internal check for whether file is open for write NFS: Convert lookups of the open context to RCU NFSv4: Convert open state lookup to use RCU NFSv4: Convert struct nfs4_state to use refcount_t NFSv4.1: Fix the r/wsize checking NFSv3: Improve NFSv3 performance when server returns no post-op attributes NFSv4: Save a few bytes in the nfs_pgio_args/res NFS: Remove private spinlock in struct nfs_pgio_header SUNRPC: Remove rpc_authflavor_lock in favour of RCU locking SUNRPC: Lockless lookup of RPCSEC_GSS mechanisms SUNRPC: Replace krb5_seq_lock with a lockless scheme NFS: Fix dentry revalidation on NFSv4 lookup NFS: Refactor nfs_lookup_revalidate() NFSv4: Fix lookup revalidate of regular files SUNRPC: Fix a compile warning for cmpxchg64() Merge tag 'nfs-rdma-for-4.20-1' of git://git.linux-nfs.org/projects/anna/linux-nfs SUNRPC: Clean up the AUTH cache code SUNRPC: Simplify lookup code SUNRPC: Convert auth creds to use refcount_t SUNRPC: Convert the auth cred cache to use refcount_t fs/nfs/delegation.c | 17 +- fs/nfs/dir.c | 295 ++++---- fs/nfs/filelayout/filelayout.c | 1 + fs/nfs/flexfilelayout/flexfilelayout.c | 1 + fs/nfs/flexfilelayout/flexfilelayoutdev.c | 2 +- fs/nfs/inode.c | 70 +- fs/nfs/nfs3proc.c | 5 + fs/nfs/nfs3xdr.c | 10 +- fs/nfs/nfs4_fs.h | 3 +- fs/nfs/nfs4client.c | 16 +- fs/nfs/nfs4proc.c | 53 +- fs/nfs/nfs4state.c | 254 ++++--- fs/nfs/nfs4xdr.c | 2 +- fs/nfs/pagelist.c | 49 +- fs/nfs/pnfs.c | 16 +- fs/nfs/pnfs.h | 1 + fs/nfs/read.c | 10 +- include/linux/nfs_fs.h | 2 + include/linux/nfs_fs_sb.h | 3 + include/linux/nfs_xdr.h | 28 +- include/linux/sunrpc/auth.h | 18 +- include/linux/sunrpc/auth_gss.h | 1 + include/linux/sunrpc/bc_xprt.h | 1 + include/linux/sunrpc/gss_krb5.h | 3 +- include/linux/sunrpc/sched.h | 10 +- include/linux/sunrpc/svc_xprt.h | 1 - include/linux/sunrpc/xdr.h | 11 +- include/linux/sunrpc/xprt.h | 35 +- include/linux/sunrpc/xprtsock.h | 36 +- include/trace/events/rpcrdma.h | 18 +- include/trace/events/sunrpc.h | 37 +- net/sunrpc/auth.c | 310 ++++---- net/sunrpc/auth_generic.c | 2 +- net/sunrpc/auth_gss/auth_gss.c | 45 +- net/sunrpc/auth_gss/gss_krb5_seal.c | 38 +- net/sunrpc/auth_gss/gss_krb5_wrap.c | 8 +- net/sunrpc/auth_gss/gss_mech_switch.c | 28 +- net/sunrpc/auth_gss/gss_rpc_xdr.c | 1 + net/sunrpc/auth_null.c | 6 +- net/sunrpc/auth_unix.c | 4 +- net/sunrpc/backchannel_rqst.c | 1 - net/sunrpc/clnt.c | 174 +++-- net/sunrpc/sched.c | 178 +++-- net/sunrpc/socklib.c | 10 +- net/sunrpc/svc_xprt.c | 2 - net/sunrpc/svcsock.c | 6 +- net/sunrpc/xdr.c | 34 + net/sunrpc/xprt.c | 908 ++++++++++++++++------- net/sunrpc/xprtrdma/backchannel.c | 20 +- net/sunrpc/xprtrdma/fmr_ops.c | 131 ++-- net/sunrpc/xprtrdma/frwr_ops.c | 137 ++-- net/sunrpc/xprtrdma/rpc_rdma.c | 30 +- net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 15 +- net/sunrpc/xprtrdma/transport.c | 120 ++- net/sunrpc/xprtrdma/verbs.c | 178 ++--- net/sunrpc/xprtrdma/xprt_rdma.h | 18 +- net/sunrpc/xprtsock.c | 1107 ++++++++++++---------------- 57 files changed, 2481 insertions(+), 2039 deletions(-)