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 F1689C00528 for ; Sun, 30 Jul 2023 16:50:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 51FE4280004; Sun, 30 Jul 2023 12:50:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4D1B8900002; Sun, 30 Jul 2023 12:50:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 398E5280004; Sun, 30 Jul 2023 12:50:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 2B908900002 for ; Sun, 30 Jul 2023 12:50:57 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id EADFA1408F8 for ; Sun, 30 Jul 2023 16:50:56 +0000 (UTC) X-FDA: 81068867712.06.A3C4E0B Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) by imf26.hostedemail.com (Postfix) with ESMTP id 2DF91140005 for ; Sun, 30 Jul 2023 16:50:54 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=VRJUGNdO; spf=pass (imf26.hostedemail.com: domain of hughd@google.com designates 209.85.128.172 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690735854; 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=MOc3sAM7hTvO70uQD/m9fZDrRb5SABF2nw7C9wZtKX8=; b=h72p+ARbUvSfYBRsOQ8KRcNv43btr/YdN+zJFwRgyiTQaFPQ9hSzhvRyZtSAuQW1Uknn88 WoLzXN6QrrFYwiCp2FLNzsgpSNUA4x5LJtOADDEUsWa8Cgldg7Tgv+8xhe5Am71plKYETd VGli26CwmqootJ4ZK0ICCimplTuAI/g= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690735854; a=rsa-sha256; cv=none; b=X8zIp8hgc3p008oSBvTYjGjTLv2SKhJBawxyRT2nOpu1fd5ufGNvLgwEakSJ9CJ3MtcxNP z/GiT0SNz2ASDTmUUpQe3RxFh+a5gJ2/0+40K28kPYJLXTPp+HH/erQGS7wOwy5gP+j2Pb PbOLaz8zOm9+fPDC4aUmj8niWoqrcHs= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=VRJUGNdO; spf=pass (imf26.hostedemail.com: domain of hughd@google.com designates 209.85.128.172 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-58459a6f42cso39682347b3.2 for ; Sun, 30 Jul 2023 09:50:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1690735853; x=1691340653; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=MOc3sAM7hTvO70uQD/m9fZDrRb5SABF2nw7C9wZtKX8=; b=VRJUGNdOo9yMXtnka8zKkl1PjpZ+2Vm6W3+/xtQ1VST2i7zAukOA7oMx0ozyCe40Es fCvAF1pAOInKQiIfEqt/w5ar/y+86Sq3DK+MULvwtqjQIPFAju8l7jlc00m8kxmcoBYD i8RxouS/f9mnL41JvJ5sjFxnkZRlyIT5BhzPKCQdqura4EbI+2qWzydZxaxylt8XiC5E MHwtcmyy3NlXT2bgQ1N2xZ6rwIUeOGZmdS8NRBmk9nGMU10YZxM4Y7UnEk5xxG9Ar+En DlB++9F2tBivYrwca0A4ILMHfAS8sq7fCtHPqmfF2FoxccV/XekEQrVcS+9cT5Jff0Gr PLJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690735853; x=1691340653; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MOc3sAM7hTvO70uQD/m9fZDrRb5SABF2nw7C9wZtKX8=; b=W/zObFTLEkFWQni6DIxXZmWcQw2uz34SxauCrZCI3Gf1x1NkrtRRAjXlosMNH3LhUF lsozNhr5FpPDH/2Jkf2+feraHt8BsFI2Xlh93fCA6YnM6jFh8uWZVo/vsyg14ov/sfA1 DmXyWpQjGimkCvoiblHVO32WSAKG84ti/dCpy2nJ9FpJfVMZcQKQauO/j1Kfs/q/xsWT kc/sOg6ddSXPoL4s+fHz1dDyfK4p1QYbY1h9Py8IUgbzCZP47tTjG6jc2TzciNe0M8G7 7mTFmC2ejRErwXwW9fw0yhkOf+lyw47Mnc5p/0Oi6pT3sq5OoV+T823znRV1dzygIh4e T4Pw== X-Gm-Message-State: ABy/qLZSQLw/31ZZi+3jaVi8HI4G0Xe6lTFfsyTRokZAS0zIomLC43+r dNqO7avS4+mNrrRM6LcjSrZJBA== X-Google-Smtp-Source: APBJJlEYYaTXM0wJR066M0vQpHK3N8c0FQQ98ypGElC0wHKdiFwsfUdtQTBr9mnePBp3PHNcg8e1FQ== X-Received: by 2002:a81:910a:0:b0:56c:ed71:a4ca with SMTP id i10-20020a81910a000000b0056ced71a4camr7546472ywg.1.1690735853181; Sun, 30 Jul 2023 09:50:53 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id m79-20020a0dca52000000b00545a08184cesm1020928ywd.94.2023.07.30.09.50.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 30 Jul 2023 09:50:52 -0700 (PDT) Date: Sun, 30 Jul 2023 09:50:44 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Chuck Lever cc: NeilBrown , Chuck Lever , David Howells , Jeff Layton , Hugh Dickins , Jens Axboe , Matthew Wilcox , linux-nfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] nfsd: Fix reading via splice In-Reply-To: Message-ID: <3082a8da-4a13-de28-ed50-8aa2e7a59afd@google.com> References: <169054754615.3783.11682801287165281930.stgit@klimt.1015granger.net> <169058849828.32308.14965537137761913794@noble.neil.brown.name> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: 2DF91140005 X-Rspam-User: X-Stat-Signature: tkw3rj1p8x4eiyw51krjzeo8j4zw7t1t X-Rspamd-Server: rspam03 X-HE-Tag: 1690735854-836360 X-HE-Meta: U2FsdGVkX1+1z/Yqi4C3skTLHuW6c4N0ezNJ6TIk06d06jXQdpPjV+4knkOhFZ/0IKjtRG0XmR4S4c/crNKBEdJ2AOHa4fC9hsfzYiFtmIBy12iiRGFJ6ZaUc14oP8h1/Y7OTqtRnR8xS+hCQK4f4d0AnHABDlCt0vuFddZxXMNz4XnkCir2neYSDJu+InPudl75IqVRaMfXObzWYwV+L1MSLjVQ0bwNIdfd4UY4ssBnrI3NOPgRWjlIvlUDQv3hpme43BI3zq82YEe2LLKs6EQuUfq7RGXCBeXbvQrojyd//VuuWi24vGUJtbQaVLF4w3wsBZWjyXI507qn2edTAG85M6Q5IXUt2f9KMp/8eoBucMbZbs6EnHygHSaeZI77vyUsfm+m/nlAgHVes1bXITXChiKxMvpNn06k1qrtVIY+wqHTOb6pOYvxykjvWUhy5xXEo5PRu3zFxRj6jmM3I0JsgrvxykQ4y8+bEROMAXyJfRKCRuxnzdmsVAFAPx/EG7G9D3VdW/5Oy0qs1fhLyNodvC9lHBgkIEFnMgCbRqtphC/iEZ4FPOMWpc0z3yANHIf4eYCTWEZesOB/fbqyWNQwO85RmxXFHsK8Fi2IMgjr1iRDJn0o4snlLRbeZ/EIO7Uc6YMzVdss7yk66fXFujA6qN6YvOK6Ng7qgcT4ckkwnV3iOwvG1WpRthZmzEtsS9E0d3WXHImlm7ZzYBbH31dblBiCjUgGphCO2j36ErQCo1fHn2gvA5vT6+neBnkOLKbE38er60uxqt4slsRrdbYwcj3iiilFzkMSu3WVFG6mxD8dkjhHs4UGtEY2GSTLSPruDcCdcAUHUgZErh2bGqQ2NwH0Q8XiMUvn/fPbJCuxUuFhJMAIantZB1ATy+GiUGsyCvwGW0QuVaoPBNPi97gEeAHGxmZGqDm7DF8dXDr7AzCZltr89+xY0SdtS46HhkgeS6d0d1pXy2nqZvz TZnTJU1N ZPbdSZXCu60MmYSI3KLTp+ovy4vdsGqkSH3OPwi5gh1TtyRwLZpQGntvIYXN7IRH0aOoosPP8BHLuCqj4jnUANhSHWpdDGPFCmiPYf0tpp+n3Vb2GEQbFMo4It681o+EwWi3VCGSpXCk+enAOKD75UlzwBybgt3Gs2lzXuJdMMURSE5XHgDHfcUD4c0NnUhrXlLDDjESBaviOhiG6y5A/DYyTr1qL8432lAuiRAOS2adSupnfEARuGTPwoEOvHAzwzp09CvHVZkAOO08AArgF2WP0kYGW2pOEH3GjmiCwWnuis4xN3RPTRnwk6bJ2pPi2X/rJV6/Gt+bYOB4+33R8ePjbV6vPd8aDMNoYfl4gFjYZGE3JUn5XUCYb9U63bfVA1e0Y 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: On Sun, 30 Jul 2023, Chuck Lever wrote: > On Sat, Jul 29, 2023 at 09:54:58AM +1000, NeilBrown wrote: > > On Fri, 28 Jul 2023, Chuck Lever wrote: > > > From: David Howells ... > - This fix is destined for 6.5-rc, which limits the amount of > clean up and optimization we should be doing > > I'd like to apply David's fix as-is, unless it's truly broken or > someone has a better quick solution. I certainly have no objection to you doing so; and think that you and David will have a much better appreciation of the risks than me. But I ought to mention that this two-ZERO_PAGEs-in-a-row behaviour was problematic for splice() in the past - see the comments on ZERO_PAGE(0) and its alternative block in shmem_file_read_iter(). 1bdec44b1eee ("tmpfs: fix regressions from wider use of ZERO_PAGE"): ah, that came from a report by you too, xfstests on nfsd. In principle there's a very simple (but inferior) solution at the shmem end: for shmem_file_splice_read() to use SGP_CACHE (used when faulting in a hole) instead of SGP_READ in its call to shmem_get_folio(). (And delete all of shmem's splice_zeropage_into_pipe() code.) I say "in principle" because all David's testing has been with the SGP_READ there, and perhaps there's some gotcha I'm overlooking which would turn up when switching over to SGP_CACHE. And I say "inferior" because that way entails allocating and zeroing pages for holes (which page reclaim will then free later on if they remain clean). My vote would be for putting David's nfsd patch in for now, but keeping an open mind as to whether the shmem end has to change, if there might be further problems elsewhere than nfsd. Hugh