From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D4FC3368B0 for ; Tue, 18 Aug 2026 23:44:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787096665; cv=none; b=o2HwkmnK1IYwXyDybp4zxwIfTmzo4LgLQuI3xhspYF2HWGVRk2HxW+TKOhZiB0DNsfob+Uk0rxJHnF4puwNxnvFJzooOg2geD9GKG2MmpOWYLeotxHl6tD2mXg0R2OHmRYfIQEO0fdFyWzJ8Wn+9IS/V1PjUCLwgmtWVOfapWX8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787096665; c=relaxed/simple; bh=uYahM4qX0slR/T8O7Hkh398ColyuT0UrhksCvPZbpfY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=h6XAXL9/f8CiTpJDUmkhHdvZ0DlfbTjym88tkVGSKkG5OoWR5ybAz0f7M/IoelZmeC9kylzlZZGRyPjFWYl9JdzIkTwe1WOstRqZDg1DjjjdCO3jxEKUO8cg84Nav8QqKCCzpZnamSFPJIXpID0GIfRJTOqtXZK25jk3Ntg47xs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=truenas.com; spf=pass smtp.mailfrom=truenas.com; dkim=pass (2048-bit key) header.d=truenas.com header.i=@truenas.com header.b=GBlsQ13v; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=truenas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=truenas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=truenas.com header.i=@truenas.com header.b="GBlsQ13v" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-496bb7cdf51so4731745e9.2 for ; Tue, 18 Aug 2026 16:44:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=truenas.com; s=google; t=1787096661; x=1787701461; darn=vger.kernel.org; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=o92sFe44ydKdGQASEJ137OI8u4J3XXbb5WVttyLKR34=; b=GBlsQ13v5Ldp+lFZUEY/C8MlOnLC3cT09DEOIh5qlOGyMHRBvmUFo/tQiVFZm5ES1N 6a0gSjPcNZDsGE5lTSeOl/OWPbI+yznkYFHL7qRKjjZ+khjB7OMsccjM8fSeZwEZU9Mt ct0A0ob4QvYbhLzYEq6lKFOF0NSCeu11O9DvUIrQj8gNOIWAP3Qrh4w3pvQtqVZ0s7Zb wNcLphwTodVosp9ey2gh8f2iCO1jktJn9xuB+0FKAgsSpn75G7NGdE0Q9k0b1NCzgbG3 +uP9nMpM5vRqxqFJJIaQwLCAe+QLgCCE4CnApPDiBPdmSr8tzzsR+V5MgrLTeuv4na/O 7/RQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787096661; x=1787701461; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=o92sFe44ydKdGQASEJ137OI8u4J3XXbb5WVttyLKR34=; b=kToGI1Wmsoy8wPJWATYGKf4eDCB73NErB5KGTFznhtl+VG9DLZpHfSbuEqxgF+P6LR CYVupcr+j/bH0NL4oOOgRiZ+/ld/BXyBXhww4S+vHwL45/IXJpKrc5dMzWflGt9vRfUX x6hi+b2UGwHBmbnZnXnPaW4mgOuuYjC2DLf785ZP66iiMRo3EatL3GIubEaZ+b2npLcG UaT3rHsEg3plI7zA7oi0P+06siqE7fPaQ1T+6TGHdXgZ64MUq6/J0LyDDJLfflj+jzjQ BHpkTGmEqM5jOaO9CIT3mwFlUtnKj3NUZ0SvOrzkTuNYol27f5DHZi94RooxjVOkrwEK SpKA== X-Forwarded-Encrypted: i=1; AHgh+RoQkj4hfJGqS4bV+PH33cmGfJRZuZzX6Xi+gHXHK63/WZFedyLNruKlIg1w0X48KOFwf+4sW2RFVuIycGY=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6fAk+vpxIS1PpMxiNXHfTmVb2n4Q2U5/8yGhNL2U7b7sgiWmy FtRxuijy7L3/v571MXzz9rtEhz4v2wgJFPo4kpRM+LiT1aWVZTS9rLhJs0npjWWoJA== X-Gm-Gg: AR+sD13EqNaLloXaBS3WXNhBhkCLQ2h3xsDFwgZ2xAZJ1ee8oCESKUNQUKDnTPkJbfp IFh8T1hpcTNXfmFmBbYftGpKekjV9PFk12IcfkdvM0cTakZqvRyj5BPYKMbtqC951u39kLhGtpO 141clh8vdYqQrMIQyEf6YKDq4JdGTSA9eQgylZoumMrVlQCSvJvd50CGX5VQHVb3XuVSbWhbcAj 7SbcMS9+/dvWQ+4CHKb8ap49wQxFRlV4i0HrZAIp2m1U9jB6Ms3mm+1/CcQ1Cl3DBXw/1onNlJ2 ZdbQE6Ki7oXf6ZchlG8OXVKrvZMaLlk9qBF+y/38HPpMMT+p5vLcsU//6Kpkmq8tBexLczNTXjn /dJzcTFZ/5vvXbsjsb8A/hz7fw/HBltcndn8/Df8HYYwXNINF37st0/edVQ8XWSsWME/wN+K1no IrfyZWBjdotHI4qSy9VdaGHzjqAMG7PhLCwRuFxj0M X-Received: by 2002:a05:600c:4ec9:b0:495:52a5:8829 with SMTP id 5b1f17b1804b1-499aa1e26d5mr9797965e9.11.1787096661464; Tue, 18 Aug 2026 16:44:21 -0700 (PDT) Received: from hamza-PC ([2400:adc1:158:c700::1]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499a9aa7e8dsm7825595e9.0.2026.08.18.16.44.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Aug 2026 16:44:19 -0700 (PDT) Date: Wed, 19 Aug 2026 04:44:14 +0500 From: Ameer Hamza To: Christoph Hellwig Cc: cel@kernel.org, jlayton@kernel.org, neil@brown.name, okorniev@redhat.com, Dai.Ngo@oracle.com, tom@talpey.com, trondmy@kernel.org, anna@kernel.org, linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, alexander.motin@truenas.com, caleb.stjohn@truenas.com Subject: Re: [PATCH 1/2] NFSD: Use nfsd_iter_read() when ->splice_read is not zero-copy Message-ID: References: <20260817210811.3984663-1-ameer.hamza@truenas.com> <20260817210811.3984663-2-ameer.hamza@truenas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Tue, Aug 18, 2026 at 07:42:01AM -0700, Christoph Hellwig wrote: > On Tue, Aug 18, 2026 at 02:08:10AM +0500, Ameer Hamza wrote: > > For some files splicing a READ cannot avoid a copy: gfs2, kernfs > > and the cifs direct-I/O modes use copy_splice_read() as their > > ->splice_read, and the VFS substitutes it for DAX files. > > copy_splice_read() allocates a fresh page for every page of > > payload and reads into it; nfsd_splice_actor() then installs > > those pages in rq_respages, displacing Reply pages the thread > > already owns. Both sets of pages are then freed. > > > > Route these READs through nfsd_iter_read() instead. It performs > > No. None of the above are sensible use cases for NFSD exports. > There is no good reason to add a barely maintained special code path > thae pokes into internals for this. > Yeah, agreed on the poking into internals part. I will rework it in v2 based on Neil's FMODE suggestion unless you have something else in mind.