From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id F1389C83F09 for ; Tue, 8 Jul 2025 16:06:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7AFB06B0092; Tue, 8 Jul 2025 12:06:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 75FD96B0096; Tue, 8 Jul 2025 12:06:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 64F096B0098; Tue, 8 Jul 2025 12:06:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 53C5C6B0092 for ; Tue, 8 Jul 2025 12:06:39 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 09E3F140671 for ; Tue, 8 Jul 2025 16:06:38 +0000 (UTC) X-FDA: 83641575318.02.4196EFA Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf03.hostedemail.com (Postfix) with ESMTP id 73B412000D for ; Tue, 8 Jul 2025 16:06:37 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=KvOJuL7Y; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf03.hostedemail.com: domain of snitzer@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=snitzer@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751990797; a=rsa-sha256; cv=none; b=Ihqhdd8nafRFm7do5Uo3gnanGqsqS5TIqVq756zwMYFy6OnwU4zkYEs/5grA4el2i9+UAs Fhrq7DFlHuNmzxNB64R0xjJwolxjzqTrtCQ5A3Lbr5OxqqYqKOpR+Zk7HWbWnSbfsWXKqa zJFYdAXpQAXGEDcv0qlEFXu7PVHi21E= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=KvOJuL7Y; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf03.hostedemail.com: domain of snitzer@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=snitzer@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751990797; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=kv4qUgSgWUmP/FL2sQvkkKSK2/wbfrLYWjRa7ARmuCk=; b=xiroTWI2H5TCmGKteimQiWvQHw4vOR5zRUxxSrQwYzloCXsSVVksYYr7BuRvsTVVya3wxr t/U1eK899eroK8waWf7Mx4+g6dVWXEUXt40yaGq2QjYkxw/6miZ/e8aDR76KyxuzIqCif6 TqarRtqg9h7flnhQj3dmCIASPQaF9cE= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DFA5DA5406E; Tue, 8 Jul 2025 16:06:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5496BC4CEED; Tue, 8 Jul 2025 16:06:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751990796; bh=/C5AFATkhKLQjaCvYFOvZcaMRX4Z+potuBz06onfoGc=; h=From:To:Cc:Subject:Date:From; b=KvOJuL7YhvkXRt8td+q5en0jtIzQ+498FxbHyViCiSptq/O/eXV1DF/5ogPNzasFN 0y3/7UNm7oRHGbUp/vcHeiT/W4Ut0X3KTxuSJwuV1oTTZ2HEox6crI6CELIqWaX7cA sKwU2uJZUJYU58pXHFxS23d9hdwRTLt499I4KZi8Dxt9lz+8juhM+Sn7zxItmkihY6 G4xIGTARaF7txg+1Z7u4oJ9vZY/4KfFT5ZCS/dYnBfeUbl0mZDJc98sgFhkfAlK4FX rwQFKHL++ZwvpTmTer1UjU/IuVS3o9wz9GNWXnociX7EydERAN+VCe8/DlyuwPKtjO iOHUGFG7MOseg== From: Mike Snitzer To: Chuck Lever , Jeff Layton , NeilBrown , Olga Kornievskaia , Dai Ngo , Tom Talpey , Trond Myklebust , Anna Schumaker Cc: linux-nfs@vger.kernel.org, linus-fsdevel@vger.kernel.org, linux-mm@kvack.org, snitzer@kernel.org Subject: [RFC PATCH v2 0/8] NFSD: support DIO Date: Tue, 8 Jul 2025 12:06:11 -0400 Message-ID: <20250708160619.64800-1-snitzer@kernel.org> X-Mailer: git-send-email 2.44.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 73B412000D X-Stat-Signature: kukmw4bf9nd7pgn49uf6q4pnuhda93gi X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1751990797-13574 X-HE-Meta: U2FsdGVkX1+geg0NGsRY2Xwvks8LyApPq+EBCT4vrKmQ6J4xwP5k1liYTtWsLuLJMncEaT72Qczkk8AtA6XY3LuBhyA/oJ4tVRfy2saV6cwf5z3jreKjrHOajVe4OJcDLsZnR4JH0eQ2XrWRLBDNQPcw2u29k4keWnww34j7jIX0h7NZaK1J6BD3BxMHM+dxJscERF+yyPlzmDnM8j04zXNp4pwcZbxpS8MVdbrcW4wgFcwNU7hh1QfdC4B8HZnlRG6zZwyDVO3puhIq8yHLffSH2WfhIR+323nTHoqGT2T2vVJE8deWCzIJAFTGnONydVtmniXhIDURHDURHfTOdHFq8wSE6PdcKqlfx8Jm2Y0G/ZT9A/CKvrDlqadrM1dDSsX3yTDUG6X7O4RxkaoaLVC1VUwSINqVDou2PauQ+4RcPVkhKhCVCJ4sc3iPBa8W8qs4GEpyfvexDeXJ90itncd1R3nCVlX4Wdl9rTik7k0dLZo9CyNFj1lRIOE1tzTIysx9H+u2Q0rieA15L7sm59wLqXnzvzNp+eJD4IC9R6Q2PLgygWmL+0HRXmzsXHLKAAITHbKa1b7MEKrfGKELZBDWd8gF54F8/1T+PPPwP2TO1+bQAHVW2GCmbVuQiDCPPJAjAubOgJsZOHO7xCVOzSk1SjUB3pThYhYPDi17z+pei7J/4xWc4tQlw7atI7O3MUyTGwk9w+9Vwxn1qDR+lHrc+ei4Se6rDaQKxW5fJh4fVbCv8+H3NESpHD46UEK2fhESVEFtpnXr7QmIcz7XwuuNFETKcComqOjvfWPYBQtxuWOFlQc0WF8dwZ05uh0JD6EwJO1VOxeaLd0kuFxOU9Z+URY9a1UWbSAbTLsQ/41Hm3HG7IZpzZyIuBouVfLO1ug/ips/97goSWRjIa+/+plhhftEQdmikx9AWJjH7ElBN2SA5RiDrKYMQjvKIipDUQDA55NaY7mYW7WxUTU xCovkQqB 6CQskmevE+om/Ed0iWdInzuIa4d7x5bUqHh9ZbKaFof5TAQvqXcHmEsbPACiYXJxl7pdk/G2rOTA9iwJMfPRyxzZ2XMHGxSGrXP/l1/B7Drx28KZvkkau7pljh6/rfyN70LpfkGcn8sEs5wGfSa5Bb5ptNDJjxz4CvnohTBsvu4Ph5RjvKByzFttuCI9hdDsWP+qjRK+IljIufwpkga+BK5+Wv5lQDf/lG4B5KlpdPsYK7Q671lhEKkH6DkXMnCqvdLVqSZXSSzd5l11vcoZatSPIWnVmqHJqq4Sw X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi, The v1 thread had quite a bit of discussion, and here are some highlights worth reading to provide background: jeff's summary: https://lore.kernel.org/linux-nfs/b1accdad470f19614f9d3865bb3a4c69958e5800.camel@kernel.org/ performance: https://lore.kernel.org/linux-nfs/aEslwqa9iMeZjjlV@kernel.org/ Changes since v1: - Rebased ontop of Chuck's proposed fh_getattr movement (Chuck, I like it so went with it). - NFSD's expanding of misaligned READ DIO to be DIO-aligned that resulted in 'start_extra' blocks being read into associated pages caused incorrect data to be returned from NFSD. This was caught using the 'dt' utility. See patch 8 for more details. - This v2 patchset has been tested pretty extensively now. I haven't time to explore Christoph's pagecache idea like I hoped: https://lore.kernel.org/linux-nfs/aEqEQLumUp8Y7JR5@infradead.org/ Any help with hardening against page cache invalidation problems due to mixing O_DIRECT and buffered IO appreciated. ;) Thanks, Mike ps. I have a LOCALIO patchset that I'll be posting next that benefits from this NFSD patchset. Chuck Lever (2): NFSD: Relocate the fh_want_write() and fh_drop_write() helpers NFSD: Move the fh_getattr() helper Mike Snitzer (6): NFSD: filecache: add STATX_DIOALIGN and STATX_DIO_READ_ALIGN support lib/iov_iter: remove piecewise bvec length checking in iov_iter_aligned_bvec NFSD: pass nfsd_file to nfsd_iter_read() NFSD: add io_cache_read controls to debugfs interface NFSD: add io_cache_write controls to debugfs interface NFSD: issue READs using O_DIRECT even if IO is misaligned fs/nfsd/debugfs.c | 94 ++++++++++++++++++++++ fs/nfsd/filecache.c | 32 ++++++++ fs/nfsd/filecache.h | 4 + fs/nfsd/nfs4xdr.c | 8 +- fs/nfsd/nfsd.h | 9 +++ fs/nfsd/nfsfh.c | 27 +++++++ fs/nfsd/nfsfh.h | 38 +++++++++ fs/nfsd/trace.h | 37 +++++++++ fs/nfsd/vfs.c | 154 ++++++++++++++++++++++++++++++++++--- fs/nfsd/vfs.h | 35 +-------- include/linux/sunrpc/svc.h | 5 +- lib/iov_iter.c | 5 +- 12 files changed, 395 insertions(+), 53 deletions(-) -- 2.44.0