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 8EBE3C433EF for ; Fri, 17 Jun 2022 17:50:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1EDCD6B0073; Fri, 17 Jun 2022 13:50:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EBF706B0088; Fri, 17 Jun 2022 13:50:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D45C16B0085; Fri, 17 Jun 2022 13:50:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 8A6B76B0073 for ; Fri, 17 Jun 2022 13:50:26 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 6436734F27 for ; Fri, 17 Jun 2022 17:50:26 +0000 (UTC) X-FDA: 79588467252.19.38835B1 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf06.hostedemail.com (Postfix) with ESMTP id 5A81D1800A4 for ; Fri, 17 Jun 2022 17:50:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:In-Reply-To:References; bh=RttTmvxcVK1PkO84jP0r5OXwhY69cxoEDCg9PuWhar4=; b=sfRC9TZb5wq/yHwBhI6BpPoCf1 tMOc/CFt997cXqqkSY9C93J/1aBWzgIUh+Jv4Te9ozCeM+N9YsDlrYn6URck0Twdma5PPcAtrrVcc Yw+7GOMDjjFF0P1tEI+lCJ5vGTuiqyeHHv3zsbFd3Een2y2ApfA6QYB5eDAkIEpmx/Y6TMobAC0XR mZHTD0y6JqQvMW52hOQ7pFlgOMN7rcL1vSag8ewG9PSu6mIavIFKMACYhZHMLH1NzblGnkAi8HVQk 4gIcaffOtSr8y7OAORjG7R1956SWEnfYoZGdj3jVXIc21ZxV2Mj9rX8r9/AMNvPHbEQxYBlRsvRms cBDf82fA==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1o2G6x-0030ZR-6L; Fri, 17 Jun 2022 17:50:23 +0000 From: "Matthew Wilcox (Oracle)" To: Andrew Morton Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org Subject: [PATCH 00/22] Convert the swap code to be more folio-based Date: Fri, 17 Jun 2022 18:49:58 +0100 Message-Id: <20220617175020.717127-1-willy@infradead.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=sfRC9TZb; dmarc=none; spf=none (imf06.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1655488226; 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=RttTmvxcVK1PkO84jP0r5OXwhY69cxoEDCg9PuWhar4=; b=0Dpy3K4lA41iRLMH8djvlA24mWGSrAl4/4ulUiQdVHTNpWgfbpIipnf8JwNSKnk/HntV58 Ds4r/B2DY8+iCRTHjAtuGiMWvOE+xYsdmE29FKGIJKwMEcSEjehLCIQ4xKQOEua7hNgyxw TEPipVjS9rX5MtBkX3NPqB/YTQQj1f4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1655488226; a=rsa-sha256; cv=none; b=rfmEwu434AVpalyh/oJlTJn0wdF45x7Y386BnYA4gUv7KV+I63wx/z+mOo7UDcbMw1EXdy CVou31oUoCEDhvYBMlJsvg/AD+qV8jkOG/ozsbm9qpop5CwxRbA+E89qyufWLbXisN9AR6 +/qTc+6MVZta7IXF8nPWHn+6TxTb6Xs= X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 5A81D1800A4 X-Rspam-User: Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=sfRC9TZb; dmarc=none; spf=none (imf06.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org X-Stat-Signature: snmjojnyzj8xhsndyefisety1nmfbtgs X-HE-Tag: 1655488225-103939 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: (resend due to email address mistake) There's still more to do with the swap code, but this reaps a lot of the folio benefit. More than 4kB of kernel text saved (with the UEK7 kernel config). I don't know how much that's going to translate into CPU savings, but some of those compound_head() calls are on every page free, so it should be noticable. It might even be noticable just from an I-cache consumption perspective. This is against next-20220617 plus my prior vmscan patch series. It's in the middle of an xfstests run right now, so it at least boots. Matthew Wilcox (Oracle) (22): mm: Add folios_put() mm/swap: Add folio_batch_move_lru() mm/swap: Make __pagevec_lru_add static mm/swap: Convert lru_add to a folio_batch mm/swap: Convert lru_deactivate_file to a folio_batch mm/swap: Convert lru_deactivate to a folio_batch mm/swap: Convert lru_lazyfree to a folio_batch mm/swap: Convert activate_page to a folio_batch mm/swap: Rename lru_pvecs to cpu_fbatches mm/swap: Pull the CPU conditional out of __lru_add_drain_all() mm/swap: Optimise lru_add_drain_cpu() mm/swap: Convert try_to_free_swap to use a folio mm/swap: Convert release_pages to use a folio internally mm/swap: Convert put_pages_list to use folios mm/swap: Convert __put_page() to __folio_put() mm/swap: Convert __put_single_page() to __folio_put_small() mm/swap: Convert __put_compound_page() to __folio_put_large() mm/swap: Convert __page_cache_release() to use a folio mm: Convert destroy_compound_page() to destroy_large_folio() mm: Convert page_swap_flags to folio_swap_flags mm/swap: Convert delete_from_swap_cache() to take a folio mm/swap: Convert __delete_from_swap_cache() to a folio include/linux/mm.h | 33 ++- include/linux/pagemap.h | 2 - include/linux/pagevec.h | 1 - mm/memory-failure.c | 5 +- mm/shmem.c | 4 +- mm/swap.c | 599 +++++++++++++++++++--------------------- mm/swap.h | 14 +- mm/swap_state.c | 39 +-- mm/swapfile.c | 23 +- mm/vmscan.c | 8 +- net/core/page_pool.c | 2 +- 11 files changed, 359 insertions(+), 371 deletions(-) -- 2.35.1