From patchwork Fri Apr 12 19:35:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 13628285 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 A443FC00A94 for ; Fri, 12 Apr 2024 19:35:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E62FF6B0096; Fri, 12 Apr 2024 15:35:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D9A6F6B0098; Fri, 12 Apr 2024 15:35:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C621F6B0099; Fri, 12 Apr 2024 15:35:23 -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 A90096B0096 for ; Fri, 12 Apr 2024 15:35:23 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 79F7C140FCC for ; Fri, 12 Apr 2024 19:35:23 +0000 (UTC) X-FDA: 82001883726.26.02E4CFD Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf03.hostedemail.com (Postfix) with ESMTP id CC2AC20025 for ; Fri, 12 Apr 2024 19:35:21 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=fQgNnb6Z; dmarc=none; spf=none (imf03.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=1712950521; 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:in-reply-to:references:references:dkim-signature; bh=SoYNw4cg3/PiZiDGgh3mMR56dd+moi10MIMx5yUsGUw=; b=5O34CFzwqTYF9nRQN01d/HDMeZJnTRbshknsyZWaEjf6BuHMP/NsZuspNSgzLbsHxNy5m2 ve8DILeNLeiKFyN+2N0vAfRnHQsaPHxZO1W9FL5xa845RT/JvxlR6gQ7QRWz8mhkj+NN/d V7YW9KbG5Njs6BgKYJV7lN2YnxqRxqM= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=fQgNnb6Z; dmarc=none; spf=none (imf03.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712950521; a=rsa-sha256; cv=none; b=qm3BJMBokH5xkxR7oKSus1stmLifjh4+/1L7kznixab14g4a7cMyZFsYv6MHTwmb2Ep91T aTWopu9j7Yjh9yVpkeinu9hCqUhGEwMixbfzF7ojw3fEAmRPmFNxrDjXOFqGtDOMS12dXl 5oC/kHnEOuH2PFRbzOXWCN71LYbcw/E= 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: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=SoYNw4cg3/PiZiDGgh3mMR56dd+moi10MIMx5yUsGUw=; b=fQgNnb6ZHttIXoZrO6YrkNR0XK M/JajGee9j5t6BHsyMOdN8i8tsipozUS3GRTt3co8pdLxwyLItHlVYhvf3v1SYzYU7ODFuI584s3J wRh8vOWorNJcwpGxmSRr+tyafZDtBn8K7ypElUvcg/X/FgtWZJYw8VeM8zIw1H2pfwfmj3hbswiL4 4Ll6/GiQcsiiOzL5Nw2AmXjCE1OPofN2B2rkgVg12vlP8tUmj6qL83DsBScmZRATQVI9ABPIXmgsw xpYF9x773bP8Ki8WEru1gEeS2S99MkMfbB85c7xQviyPM7WlgP4Sk/bkw1jGeh7TmKmJg/UBqNgOj oT7a/AIA==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rvMg4-00000009t9y-1ib3; Fri, 12 Apr 2024 19:35:12 +0000 From: "Matthew Wilcox (Oracle)" To: Miaohe Lin Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, Jane Chu Subject: [PATCH v3 11/11] mm/memory-failure: Pass the folio to collect_procs_ksm() Date: Fri, 12 Apr 2024 20:35:08 +0100 Message-ID: <20240412193510.2356957-12-willy@infradead.org> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240412193510.2356957-1-willy@infradead.org> References: <20240412193510.2356957-1-willy@infradead.org> MIME-Version: 1.0 X-Rspam-User: X-Stat-Signature: fuwrnr3zbw1u5ysbd9wezrx7bmeewn4t X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: CC2AC20025 X-HE-Tag: 1712950521-559357 X-HE-Meta: U2FsdGVkX1/8R+EQyacvkY/CEeqxwOZnb5DXK7wfdha++LSou47F1AEGZwR89eDYXZac7gAyu2zFy0XvgGpYpN7ePumJl+E4FvY6rto+pcWnjsd3HOzfziwbE1OTwnrL+78OLLJh/Bf/g0mXXML0C8kvC5NaQOM3D9jFTWltiQ1eCg9/cdgICFjz9XuxssoeTa+SXzeAjAryYwWKQppW73MxyuluHPk1x8MFONrdS261s0gITGgFDmHHHHJrRQJ7FQj1ANCk4UXxeg28JojQY0xRgGW03pvBRw7kyzYr+wOUFCbN5wtqe8XfU0OCfFNNF3gpCU3TGzVfxRgiBMgHwZJAHZvAT3KV/gVYOMelOC8FtE4rKXgkb462WlZWMddvbpeBTTUQ5PSU0or6MiKopJLagctZPT8I/5KOu/sYpx5dTBCAXaeXBPdYAXC9+PFXmUk3O8Xt+hZM41WJ9D49m4Y9dS2TSptx+eBTq3JZN9ZO6kuDgWj0hbo9Ubt9zbR1fI7F1jJY3cNI53FyyASNmKtIcygXNIkmheonZIPIc5hUL1HJ7+1UZBHxOMEU1qpF8ILlRcnp8FRWuzNRZnsx2YiV4GGQWoelLYVo5t9hpFAkmFrVDk0ACXPs07rRYDmnK98wgdBAbYu3R/I5/rBB4a1zbffYLQaXQQGr1N+nxjRD9/OCM9kpZ5UeDNeLD6ghkbi4eT6+YKiA4JuJDFAtGnbmB2M8n54xFT6/zQKzKT/NBRSjMUWnV+Q2LvSJvparkGH9LqfRE+3CD/T/2B0UJ+2YGJyUiyQgy/U3dqgxhOicrqoMrF39DysR5RFw4zZyyDQPSyvZqDa0QkHVXP8SdHfFZnAaQUmQ0Kaq6PaM7Jh/XaYm/sP28iKHdBC0VmaTTGKYsWKk1kKkZLbVIgVXeguhNt3BAiHKElxJvyi5pMxmZDGuq2stTqi0lKd3ZXkhjssVQYQfb+ewg6NOje5 aIoQW0dL d107CbsPLsxZn2Aw86/NdYmv3KBkczA8c9HHRg3NVI8aAG28IjpegBZBwjG2zSLeJkioqGTSziGPqT3yH7tK6vb1V6PPGdUAQMBhWowAGQ7q/UiTpjmYY/bVzzd6wMM4Q/6jgNcIudiM81AilT4FUta4EubqXLDDuygfzRGn15Yso3X0xj6MyenALzzPa9BGs7hlIZ8Hq43OGmh/2Saba+tQ0M8qLOrWcg8GelR+0VOreVT9ZCU/HVFIjonNhVJbIfLBM 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: We've already calculated it, so pass it in instead of recalculating it in collect_procs_ksm(). Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Jane Chu Reviewed-by: Miaohe Lin --- include/linux/ksm.h | 14 +++----------- mm/ksm.c | 5 ++--- mm/memory-failure.c | 2 +- 3 files changed, 6 insertions(+), 15 deletions(-) diff --git a/include/linux/ksm.h b/include/linux/ksm.h index 358803cfd4d5..52c63a9c5a9c 100644 --- a/include/linux/ksm.h +++ b/include/linux/ksm.h @@ -81,15 +81,9 @@ struct folio *ksm_might_need_to_copy(struct folio *folio, void rmap_walk_ksm(struct folio *folio, struct rmap_walk_control *rwc); void folio_migrate_ksm(struct folio *newfolio, struct folio *folio); - -#ifdef CONFIG_MEMORY_FAILURE -void collect_procs_ksm(struct page *page, struct list_head *to_kill, - int force_early); -#endif - -#ifdef CONFIG_PROC_FS +void collect_procs_ksm(struct folio *folio, struct page *page, + struct list_head *to_kill, int force_early); long ksm_process_profit(struct mm_struct *); -#endif /* CONFIG_PROC_FS */ #else /* !CONFIG_KSM */ @@ -120,12 +114,10 @@ static inline void ksm_might_unmap_zero_page(struct mm_struct *mm, pte_t pte) { } -#ifdef CONFIG_MEMORY_FAILURE -static inline void collect_procs_ksm(struct page *page, +static inline void collect_procs_ksm(struct folio *folio, struct page *page, struct list_head *to_kill, int force_early) { } -#endif #ifdef CONFIG_MMU static inline int ksm_madvise(struct vm_area_struct *vma, unsigned long start, diff --git a/mm/ksm.c b/mm/ksm.c index 108a4d167824..0bdd4d8b4c17 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -3172,12 +3172,11 @@ void rmap_walk_ksm(struct folio *folio, struct rmap_walk_control *rwc) /* * Collect processes when the error hit an ksm page. */ -void collect_procs_ksm(struct page *page, struct list_head *to_kill, - int force_early) +void collect_procs_ksm(struct folio *folio, struct page *page, + struct list_head *to_kill, int force_early) { struct ksm_stable_node *stable_node; struct ksm_rmap_item *rmap_item; - struct folio *folio = page_folio(page); struct vm_area_struct *vma; struct task_struct *tsk; diff --git a/mm/memory-failure.c b/mm/memory-failure.c index a9fa5901b48c..c7cce73333f6 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -723,7 +723,7 @@ static void collect_procs(struct folio *folio, struct page *page, if (!folio->mapping) return; if (unlikely(folio_test_ksm(folio))) - collect_procs_ksm(page, tokill, force_early); + collect_procs_ksm(folio, page, tokill, force_early); else if (folio_test_anon(folio)) collect_procs_anon(folio, page, tokill, force_early); else