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 828C8C83F17 for ; Mon, 14 Jul 2025 17:33:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 22EC16B00B8; Mon, 14 Jul 2025 13:33:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1DF336B00B9; Mon, 14 Jul 2025 13:33:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0CED46B00BA; Mon, 14 Jul 2025 13:33:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id EABAD6B00B8 for ; Mon, 14 Jul 2025 13:33:41 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A340CC0215 for ; Mon, 14 Jul 2025 17:33:41 +0000 (UTC) X-FDA: 83663567442.21.BD9D066 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf19.hostedemail.com (Postfix) with ESMTP id 1034E1A000F for ; Mon, 14 Jul 2025 17:33:39 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=jOOSjnzF; spf=pass (imf19.hostedemail.com: domain of snitzer@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=snitzer@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752514420; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DFz9dlFVLpbiiemOvg+uFTjWArCynKRWAd6NsrlXMmI=; b=OXwRQZtxkcRtOziPU0xmkSvaZmRy8zwb15njwSmkeZVNz+uedsE9G+DA+1+Rq4uJKId28x LEYpUApKjAePFCedXwKVdUiX5HsP9PZ+u2bq1HpLnBWsXQiqe3oXz4kivEaPuPF1+8aF1H VmbeqTJT7JagMzfwzjRiGsRJXJlCnbA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752514420; a=rsa-sha256; cv=none; b=hh+HQQuTcysgYUHInu8DchG+o1CN5avp1Fkjs2cWYFnJOaAQzKyU8D89PYnwEiE+zEBIfF GRFM7p/QYRILcU7Pogu/cdNjj9gp88125WsZfWdkBsUz7DPbYJxIAQBhSSCWPDTTodjT9X UCVgEyinzDEtIZY8UuN/KOCxb3aKL98= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=jOOSjnzF; spf=pass (imf19.hostedemail.com: domain of snitzer@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=snitzer@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 7EDCBA56FB7; Mon, 14 Jul 2025 17:33:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E8451C4CEED; Mon, 14 Jul 2025 17:33:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1752514419; bh=jO1O3Cx7LnQFLAZ5dri49BbmBy9JcrK0ABz+GxGJEuo=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=jOOSjnzFZofw2LW358ycXfRPOCQNnIQlea/OvNypKNkkLhO4uBCl8bkrYuX0fvb87 kYuFkbJPbhO8+U3da+UZXZlBbVfjVy5Z2iX6hamF+a+ESIz9iABKaOaNSiwlMnECeN TQBzBfHK7kXiDZwOndpHvIIDzW9rCeGOaRL0Tla6RczlBieyJZRqRK1rEmC8tNOsHs DMRXo/lh6lqBlK+4JdCfQFJ0Woma3GW2AWTZa0y3tSqjv9xefOUgmuY4XJgLysOl9d 3FfPW5RtRQIWXT1peYgqYKFFOwrbTh+icFKVv0AMYbUczXsPCOsq0WhyINPXfr1DLe 17ARycdwLAPgw== Date: Mon, 14 Jul 2025 13:33:37 -0400 From: Mike Snitzer To: Christoph Hellwig Cc: Chuck Lever , Jeff Layton , NeilBrown , Olga Kornievskaia , Dai Ngo , Tom Talpey , Trond Myklebust , Anna Schumaker , linux-nfs@vger.kernel.org, linus-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [RFC PATCH v2 6/8] NFSD: add io_cache_read controls to debugfs interface Message-ID: References: <20250708160619.64800-1-snitzer@kernel.org> <20250708160619.64800-7-snitzer@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 1034E1A000F X-Stat-Signature: rsoonro58qisqigesxjaid66bf7da74y X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1752514419-797057 X-HE-Meta: U2FsdGVkX1/0Cq4aGnlGoVmi4/pPqzfxiRleHsh1r6R2durXa1slC0rmY3svngbgPkmy9BdogzP7c/CLL8bW0OYLXxt/INwQj3cvH4K2V65+738vkUJVdJzPmHmx69jp+uXI20TtHsUigSe2VX5nfLoHz6U+YUtNkbproHYHmNMZ95EJnKz9+itQ6eS7VpTy+UJUEwLEg8V0IEgu3Eds/JOSMA3NLxZ598XN19WzCb5g8Yw/3QUGGWRwXsLlT/p6Voj6banW8zXur5zF5N5B8qY/vlMC68fAuJ9L3rFHsfcBQkOsP0nCWqiR1fofZLW0W/B88CxlDRCIlMsa6EnUdY2eR2FVwihuLkktLm/tYA64OQx65z+JxwceWG/UF7qRwt6ng3YYZr5VRt+mDvITB8TRBHLaSj1XfneCYTj7IUQiujibMM7wIGIl42sP1Ax4ctDFOSGwtirnBz1Uba7CWnHQrxveVNFMH2UnFJBt1LJHH7qtiOaJiSqsNuoNSaqCedghzavxCpBwyDzkprDNTHPautXEbtlvdGFo98BYLWuA6EzdMCl8ia4vAt83dtYPoHGsJlljIcZvuCOwt4URjZaGKBwJcrxJlLbLDUtHAx8TzshNbaCz3r4blpNfjb7Ly83Ukpp61H/VSDptcTxsodIAodcD09WThFF/CpZyknZsGElCdbVwDhpdr+C5FvwQZrJitNXghFaD6I22LiJUCCUgM9uwtbdW5PqmrWsdpMtJBWTDEmIwsXUnK9xRLsNOtApzExfs35TjadSoI1nrMDrtRxlGsr7PRyEyE2M8LDDApHGF5fdqhUyopOzxUUr+2zgk+vpq6c4PXUslFhHKbOoBihWKUc+UM5NviUh0X0ZaGDhOnzK3V8xhLFp+QS1dLffvHbg88XUKqYUtXXl7hZC1lD1ioTSmGtawP/rYyfEkzpaJBjTyDJ0aWyML5lzCzQfjTB2nKfUnFFmiJxB YRrn54ZN v6e8Yvdc7JAo6eddyLaTP2i0GctqFHyRpGoCfJFi8TQgWNKg2oCdW7troyTZQgsieaRR305wVYPdU2ibW9/1NH25jn/eOdlY7mYWpM+l+6bW9ZrqsDlhGOo/DXldv9k3/rBP577GidBADByQT2mMwp81rEMoMautjMjnH90mogMDmqtyAu47q0SUcoujU5dLVuN9+QVoU7/PqI5RTBMKVclvkjthYEyUUQ4p5AucGLNAvaOhCYV3oM21GArwaWtiuqCo2ZqxlLkegzjjXHtpavIBGu4n6cvfJLWCdQBY7n9b2vNA= 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: On Thu, Jul 10, 2025 at 12:47:43AM -0700, Christoph Hellwig wrote: > On Tue, Jul 08, 2025 at 12:06:17PM -0400, Mike Snitzer wrote: > > Add 'io_cache_read' to NFSD's debugfs interface so that: Any data > > read by NFSD will either be: > > - cached using page cache (NFSD_IO_BUFFERED=0) > > - cached but removed from the page cache upon completion > > (NFSD_IO_DONTCACHE=1). > > - not cached (NFSD_IO_DIRECT=2) > > > > io_cache_read is 0 by default. It may be set by writing to: > > /sys/kernel/debug/nfsd/io_cache_read > > > > If NFSD_IO_DONTCACHE is specified using 1, FOP_DONTCACHE must be > > advertised as supported by the underlying filesystem (e.g. XFS), > > otherwise all IO flagged with RWF_DONTCACHE will fail with > > -EOPNOTSUPP. > > > > If NFSD_IO_DIRECT is specified using 2, the IO must be aligned > > relative to the underlying block device's logical_block_size. Also the > > memory buffer used to store the read must be aligned relative to the > > underlying block device's dma_alignment. > > Does this also need some kind of check that direct I/O is supported > at all by the file system / fops instance? Long-term: definitely. Near-term: not going to add it because it'd have to be checked on a per-IO basis (because this debugfs-based interface is a global setting so we don't have a specific export to check at the time the request to use O_DIRECT is made via debugfs). Once we graduate to having a per-export control interface in NFSD we can then verify export's underlying filesystem supports O_DIRECT. Hope this makes sense, thanks. Mike