From patchwork Fri Apr 5 06:08:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Honggyu Kim X-Patchwork-Id: 13618572 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 F1A0DCD11C2 for ; Fri, 5 Apr 2024 06:24:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 82E626B00A9; Fri, 5 Apr 2024 02:24:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7DD496B00AA; Fri, 5 Apr 2024 02:24:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 67DC06B00AB; Fri, 5 Apr 2024 02:24:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 498246B00A9 for ; Fri, 5 Apr 2024 02:24:20 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 046941210CA for ; Fri, 5 Apr 2024 06:24:19 +0000 (UTC) X-FDA: 81974488680.28.08FD031 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf23.hostedemail.com (Postfix) with ESMTP id DAB8614000C for ; Fri, 5 Apr 2024 06:24:15 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of honggyu.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=honggyu.kim@sk.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712298258; 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; bh=+zGyhrR9T2NFQOurh94KcoqTuEhCHBx1Vh9SP6FeliA=; b=EfQbb8cx/xOCZAR+SghJZ1qpD7NrKycROJp84O94AqP5VFssxAotCybVniLWQ4I1ILgLDz hC5HDX9hID4bPSGKB087hjnPfd1DAPc7ljByUsv8f8QzMQO7idjroD1ZAv1/U/G7sMpk6e 5QeWYabamVLogJas3OERsy2fR6iXm6I= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712298258; a=rsa-sha256; cv=none; b=AGk6h1T9qtk4kt8FXapw8izc9Ik9qgQexwIMAAgidMAFkvVEcvc3EcMI0PpMUnSOrvPJrO r4A8BxJXnFiNgy9djdz+ZyWQEFJaMZ1qLwsJ0xpqXWi7fw9i1aCuVzTDjyzPd1gX1WFXdj onzzno116vNTOBpiqvjoCyirYJORuZo= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of honggyu.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=honggyu.kim@sk.com; dmarc=none X-AuditID: a67dfc5b-d6dff70000001748-8f-660f9580d017 From: Honggyu Kim To: sj@kernel.org, damon@lists.linux.dev, linux-mm@kvack.org Cc: akpm@linux-foundation.org, apopple@nvidia.com, baolin.wang@linux.alibaba.com, dave.jiang@intel.com, honggyu.kim@sk.com, hyeongtak.ji@sk.com, kernel_team@skhynix.com, linmiaohe@huawei.com, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, mathieu.desnoyers@efficios.com, mhiramat@kernel.org, rakie.kim@sk.com, rostedt@goodmis.org, surenb@google.com, yangx.jy@fujitsu.com, ying.huang@intel.com, ziy@nvidia.com, 42.hyeyoo@gmail.com, art.jeongseob@gmail.com Subject: [RFC PATCH v3 2/7] mm: make alloc_demote_folio externally invokable for migration Date: Fri, 5 Apr 2024 15:08:51 +0900 Message-ID: <20240405060858.2818-3-honggyu.kim@sk.com> X-Mailer: git-send-email 2.43.0.windows.1 In-Reply-To: <20240405060858.2818-1-honggyu.kim@sk.com> References: <20240405060858.2818-1-honggyu.kim@sk.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrMIsWRmVeSWpSXmKPExsXC9ZZnkW7DVP40g7N/TC0m9hhYzFm/hs1i 140Qi/sPXrNb/N97jNHiyf/frBYnbjayWXR+X8picXnXHDaLe2v+s1ocWX+WxWLz2TPMFouX q1ns63jAZHH46xsmi8mXFrBZvJhyhtHi5KzJLBazj95jdxD2WHr6DZvHhiYgsXPWXXaPln23 2D0WbCr1aDnyltVj8Z6XTB6bVnWyeWz6NInd48SM3yweOx9aerzYPJPRo7f5HZvH501yAXxR XDYpqTmZZalF+nYJXBmHjj9hKTgkWHHr/VzGBsbNfF2MHBwSAiYSE85KdjFygpl31zazgdhs AmoSV15OYgIpERFwkFj1VaGLkYuDWeA/s8Tl3l+sIDXCAlESS0+8BLNZBFQlFty7D9bLK2Am 8e70O3aImZoSj7f/BLM5Bcwl5j3eAGYLAdV8OniMHaJeUOLkzCcsIDazgLxE89bZzCDLJASO sUv03PrOCDFIUuLgihssExj5ZyHpmYWkZwEj0ypGocy8stzEzBwTvYzKvMwKveT83E2MwKhb VvsnegfjpwvBhxgFOBiVeHg95vKlCbEmlhVX5h5ilOBgVhLh7XbgTRPiTUmsrEotyo8vKs1J LT7EKM3BoiTOa/StPEVIID2xJDU7NbUgtQgmy8TBKdXAWOatH6b/L89C8d/CqDVemTeuZH8+ X/5rodYsN9EFLz8aP2P9dG2NeM3+Gw9UlRUvNYRLdK37oDmjOCw8Rj346zMztQ0NSTc2GFY3 rWqOqVx95YSpS9aMAzIz7JZYvn3SuOnK6xcNrfv3bfm08e2e757Pvkaw9V0tdLlQbf7ggO0N LdH+Jg6lGCWW4oxEQy3mouJEAHAPeW+2AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprHIsWRmVeSWpSXmKPExsXCNUNLT7dhKn+awclHGhYTewws5qxfw2ax 60aIxf0Hr9kt/u89xmjx5P9vVosTNxvZLD4/e81s0fnkO6PF4bknWS06vy9lsbi8aw6bxb01 /1ktjqw/y2Kx+ewZZovFy9UsDl17zmqxr+MBk8Xhr2+YLCZfWsBm8WLKGUaLk7Mms1jMPnqP 3UHcY+npN2weG5qAxM5Zd9k9WvbdYvdYsKnUo+XIW1aPxXteMnlsWtXJ5rHp0yR2jxMzfrN4 7Hxo6fFi80xGj97md2we3257eCx+8YHJ4/MmuQCBKC6blNSczLLUIn27BK6MQ8efsBQcEqy4 9X4uYwPjZr4uRk4OCQETibtrm9lAbDYBNYkrLycxdTFycIgIOEis+qrQxcjFwSzwn1nicu8v VpAaYYEoiaUnXoLZLAKqEgvu3Qfr5RUwk3h3+h07xExNicfbf4LZnALmEvMebwCzhYBqPh08 xg5RLyhxcuYTFhCbWUBeonnrbOYJjDyzkKRmIUktYGRaxSiSmVeWm5iZY6pXnJ1RmZdZoZec n7uJERhry2r/TNzB+OWy+yFGAQ5GJR5ej7l8aUKsiWXFlbmHGCU4mJVEeLsdeNOEeFMSK6tS i/Lji0pzUosPMUpzsCiJ83qFpyYICaQnlqRmp6YWpBbBZJk4OKUaGLdVHdhTwN9+yD3Jw63+ JXvOuqMRXl+z9825+mHGKZ8WR529Mb90dG3cTi3O4ckKf3TTi/vew4yrTr3Vy024a479SPhf db/Q7PuhRReyTaTnxlZs65JO8bgv9NmodPkpmVpf37t926983XPrcXDdBIZD6Wn5jCF5ggfs znZ9+DS3LaY2M776jxJLcUaioRZzUXEiAFYH+5KxAgAA X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: DAB8614000C X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: bqdh73ax7qtksbocez4maxdopgu31oc6 X-HE-Tag: 1712298255-693941 X-HE-Meta: U2FsdGVkX1/xy6g/57fTVE+dhO0fAhi/qABu0sa6GVqISWY//VZPv+TxGsRnZWXO9GYGT4DuAeHQKCsyIIctKsIZxCmL+vWq2hFJa4nxNKrx6bcVLsAiMJKKbcMWExdTbPxPfywWgOoueDpZcR3JmaJS4YDOacq6WRc1gDwpZ8FH7VGgUdDRb2pH1p6MhZZ7wlDNkiBtcTsUl/S00jk5WDPiCl7gGMJjJpz6hipg5GanoXd88PrkvDwtCPGbCoLu4P+KZFi1l5VJ+F8lrMmJsUqrnN78eoFbLYSO7H1kGn6sRDTJC+Tr7UWi8+9jf3MXVmhL49kghiuKuVBJvothucWyEW+PR3Qe/Tin5o8StQotUsZaJ4iFDo69kdRtoLkZjMATmCaH1lk3ABtnZq0eKTRB/foMREyyaXQLik2mLMMvARKiYHgMBRD8z5dAKdLIaPzOO/hMf8Z/Yvi1uYWljIfXIwsSBUA3PnL9NAMANm8YphbmE7AWs8V88H+Sizs7cX3Nty7oF1LmC5rY+R0LMi/ojeGRL2tE9xpg+i2M0MRanDKMh54MsbIVNyE3U/bFt248vaFnaSM4Mu8/XqQlDBEjzt3mpEwea2ZgxP1ghQFwII3PtuyTnJqbU9wZMl/3siXfDCYWZqTfg4qTf31agQcVQANc/hvogqK9dyYmsIk0DmdeAsF0vJd0Z6sMtSOys+L0UTrP9L3ZesDsYn5K82cTvGi8qEjdgPyvDAmTZTggXeKBc1jfy+8MevZCqdj57QZgpM64s0uoOK1ToG0Hxw16yU8K42D9dL77QQOuykD/kadoyQzRoRNcxSt6BDaJc1oFgf8utaKGwL0pi3msYpqyvSedC9amTyAkoD63t99kHHv6gJ8XR35RnO1NKPf9MVmnaEzzDxARfqf8Top746YvELeCvikbBjsL50kqardoXHqERnyGy6ieZZlDQQe7tKOPdsoFQDcvOzkzhsa zFeBEt4Q RacttSj/tYEyCVrvTVrYXm+at0di83bFFTfexrGNfLzVbyaDUVX/mqqMJTC2Aqf6j2XXdF258bFwixqAjvM8ik0xg1d3m5WxuqgvHPdfT0DncP+qp1Ap8s5IOhGGomF6+OutQWk4v/7w1zTbszEfQeSEbmg== 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: The alloc_demote_folio can be used out of vmscan.c so it'd be better to remove static keyword from it. This function can also be used for both demotion and promotion so it'd be better to rename it from alloc_demote_folio to alloc_migrate_folio. Signed-off-by: Honggyu Kim Reviewed-by: SeongJae Park --- mm/internal.h | 1 + mm/vmscan.c | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index f309a010d50f..c96ff9bc82d0 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -866,6 +866,7 @@ extern unsigned long __must_check vm_mmap_pgoff(struct file *, unsigned long, unsigned long, unsigned long); extern void set_pageblock_order(void); +struct folio *alloc_migrate_folio(struct folio *src, unsigned long private); unsigned long reclaim_pages(struct list_head *folio_list); unsigned int reclaim_clean_pages_from_list(struct zone *zone, struct list_head *folio_list); diff --git a/mm/vmscan.c b/mm/vmscan.c index 4255619a1a31..9e456cac03b4 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -910,8 +910,7 @@ static void folio_check_dirty_writeback(struct folio *folio, mapping->a_ops->is_dirty_writeback(folio, dirty, writeback); } -static struct folio *alloc_demote_folio(struct folio *src, - unsigned long private) +struct folio *alloc_migrate_folio(struct folio *src, unsigned long private) { struct folio *dst; nodemask_t *allowed_mask; @@ -935,6 +934,11 @@ static struct folio *alloc_demote_folio(struct folio *src, if (dst) return dst; + /* + * Allocation failed from the target node so try to allocate from + * fallback nodes based on allowed_mask. + * See fallback_alloc() at mm/slab.c. + */ mtc->gfp_mask &= ~__GFP_THISNODE; mtc->nmask = allowed_mask; @@ -973,7 +977,7 @@ static unsigned int demote_folio_list(struct list_head *demote_folios, node_get_allowed_targets(pgdat, &allowed_mask); /* Demotion ignores all cpuset and mempolicy settings */ - migrate_pages(demote_folios, alloc_demote_folio, NULL, + migrate_pages(demote_folios, alloc_migrate_folio, NULL, (unsigned long)&mtc, MIGRATE_ASYNC, MR_DEMOTION, &nr_succeeded);