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 05A47C433F5 for ; Mon, 20 Dec 2021 12:21:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 59B366B0071; Mon, 20 Dec 2021 07:21:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 549EA6B0073; Mon, 20 Dec 2021 07:21:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 438D76B0074; Mon, 20 Dec 2021 07:21:53 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0069.hostedemail.com [216.40.44.69]) by kanga.kvack.org (Postfix) with ESMTP id 330BA6B0071 for ; Mon, 20 Dec 2021 07:21:53 -0500 (EST) Received: from smtpin15.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id E1D62180D6FA4 for ; Mon, 20 Dec 2021 12:21:52 +0000 (UTC) X-FDA: 78938084064.15.59C442B Received: from mail-ua1-f49.google.com (mail-ua1-f49.google.com [209.85.222.49]) by imf21.hostedemail.com (Postfix) with ESMTP id D321B1C0038 for ; Mon, 20 Dec 2021 12:21:48 +0000 (UTC) Received: by mail-ua1-f49.google.com with SMTP id n7so17215740uaq.12 for ; Mon, 20 Dec 2021 04:21:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kQFMqdREYbA6pMmlCdr5tqLXzt6JY03eIdDvlj4irPg=; b=lOxIjH2sPXo7lH1pv+9xqI6q77X5toldoYNan7hBf0t4eykMEXCKFBwZHism4a8i9I 2u/qKd6G1p/iqZJOlJRARn9dpuxJKsL9QfTSbV6vaeKYMmq4ad6pPvdtgv3P7R9xDlMO gjJof3eUpIiltLOttwIrFQhicAjUfkWj/eHf16bc9CGrnyFBHCgbQ5mfvVXSGng+GnST 9e9jFhkvF53lBIOUOklUKUZSbggo+GyQs5crxQ7SZOmcuo0CqRAhtCnz7EZiHg0koJZN GY8qx5Y86N1YWaBisYlM4eMY6SEy7KAf76gxgF9QemzyevIua4uibmFuJxsyfGLWYcHW IfGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kQFMqdREYbA6pMmlCdr5tqLXzt6JY03eIdDvlj4irPg=; b=Hv5ShYdDWHmbLZxV+DbOvzVfSRch3DAGH1Ey8iY8vd6S7iKs69PI6bG2/KHneqGSL3 gf6nWw5RieKDYoC2d4F8DEX9VLzoT5NcHmQKDi76ZOMqrB0yWpVQ/ZzhK4xYPuGgXXeH Af0sIZ/ZTQ97t/OEoznUkv4NhSJnfH+uD38sR8dQvBNVbp669Nu2ogtcAFDTNabnfWuT nzbg0SeHzUNfICWosKPNPWCXttDkWOcJH8qSUcpxpn3KUPE3Nmi7k1lLwufbFUOXdrEa ZBrehXtVeqrWKx7ZuktZFSjwHfeIH6OMf9S9LhzNgwm3oqFajbOy1P0WEfZJwYDakoOk /Y5Q== X-Gm-Message-State: AOAM5311r+2hH4bfyDQ87rg1wvR1zjr382ojNi5Bq08zkmZdpq89I9tF zHmSbsj/gNxsgjh2z9gWfeBBfnImb+Z/ZEUOOOs= X-Google-Smtp-Source: ABdhPJy5Yr3VSqOfKSJ2+mLWwF2Sf8WB3Mmlsk+ujRLez8Z6FA6BEhzJG/7MZDhGMxB65PxZq+Q/hqMvFjYAiTYSnm0= X-Received: by 2002:a05:6102:1613:: with SMTP id cu19mr4463931vsb.25.1640002911522; Mon, 20 Dec 2021 04:21:51 -0800 (PST) MIME-Version: 1.0 References: <163969801519.20885.3977673503103544412.stgit@noble.brown> <163969850299.20885.11549845125423716814.stgit@noble.brown> In-Reply-To: <163969850299.20885.11549845125423716814.stgit@noble.brown> From: Mark Hemment Date: Mon, 20 Dec 2021 12:21:40 +0000 Message-ID: Subject: Re: [PATCH 07/18] MM: submit multipage write for SWP_FS_OPS swap-space To: NeilBrown Cc: Trond Myklebust , Anna Schumaker , Chuck Lever , Andrew Morton , Mel Gorman , Christoph Hellwig , David Howells , linux-nfs@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: D321B1C0038 X-Stat-Signature: aqcjkq4t7f5entxtw9p6ekdymntkt6px Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=googlemail.com header.s=20210112 header.b=lOxIjH2s; spf=pass (imf21.hostedemail.com: domain of markhemm@googlemail.com designates 209.85.222.49 as permitted sender) smtp.mailfrom=markhemm@googlemail.com; dmarc=pass (policy=quarantine) header.from=googlemail.com X-HE-Tag: 1640002908-798154 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 Thu, 16 Dec 2021 at 23:56, NeilBrown wrote: > > swap_writepage() is given one page at a time, but may be called repeatedly > in succession. > For block-device swapspace, the blk_plug functionality allows the > multiple pages to be combined together at lower layers. > That cannot be used for SWP_FS_OPS as blk_plug may not exist - it is > only active when CONFIG_BLOCK=y. Consequently all swap reads over NFS > are single page reads. > > With this patch we pass a pointer-to-pointer via the wbc. > swap_writepage can store state between calls - much like the pointer > passed explicitly to swap_readpage. After calling swap_writepage() some > number of times, the state will be passed to swap_write_unplug() which > can submit the combined request. > > Signed-off-by: NeilBrown > --- > include/linux/writeback.h | 7 +++ > mm/page_io.c | 98 ++++++++++++++++++++++++++++++--------------- > mm/swap.h | 1 > mm/vmscan.c | 9 +++- > 4 files changed, 80 insertions(+), 35 deletions(-) ... > +void swap_write_unplug(struct swap_iocb *sio) > +{ > + struct iov_iter from; > + struct address_space *mapping = sio->iocb.ki_filp->f_mapping; > + int ret; > + > + iov_iter_bvec(&from, WRITE, sio->bvec, sio->pages, > + PAGE_SIZE * sio->pages); > + ret = mapping->a_ops->swap_rw(&sio->iocb, &from); > + if (ret != -EIOCBQUEUED) > + sio_write_complete(&sio->iocb, ret); > +} > + As swap_write_unplug() is called from vmscan.c, need an 'no-op' version (in "swap.h") for when !CONFIG_SWAP Mark