From patchwork Mon Feb 26 14:05:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Honggyu Kim X-Patchwork-Id: 13572198 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 02B31C54E41 for ; Mon, 26 Feb 2024 14:06:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6BED86B00D5; Mon, 26 Feb 2024 09:06:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 670486B00DA; Mon, 26 Feb 2024 09:06:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 49BB06B00DC; Mon, 26 Feb 2024 09:06:25 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 35B276B00D5 for ; Mon, 26 Feb 2024 09:06:25 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 11F4CC0978 for ; Mon, 26 Feb 2024 14:06:25 +0000 (UTC) X-FDA: 81834129930.30.1AB8E96 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf23.hostedemail.com (Postfix) with ESMTP id 1D5D4140012 for ; Mon, 26 Feb 2024 14:06:22 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; dmarc=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 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708956383; 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=/O1IDxVh05t8M0nebcpVtrx+/Qgao8Jaq6x7QW3BvpY=; b=qkRChNrliPfBr/zBJ++8zSyPKb6nqZeIh84RX9kbp0H7sf1rO7zy+UmOhrS0h2O/4rOzs6 3bAORypPuwe4VVLBhpnTVQaxQh0uyPuL4og/equuzz+wMctjcWMQTYYTMqLX6CeakbSblc d+C/GR+UhDCSqT9oBtXEbmjIdwElNBo= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; dmarc=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 ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708956383; a=rsa-sha256; cv=none; b=0DT2SYYawjHgELQjdSsS+6cdqs9NbggV3bpnRXXJLmJKTdhzl7eFdQGEusMCARrtkbOEtM VPYjgTNg/izbmr0JqjLXg4/gV4CIdSRUH/YVYzuAroCVdajoovhOWhWV3b1+PyAQLKbGM2 cX/1+3b78CjNofdvtOvc3y36XEYGJa8= X-AuditID: a67dfc5b-d6dff70000001748-65-65dc9ad7da0c 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, lizhijian@cn.fujitsu.com, 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 Subject: [PATCH v2 2/7] mm: make alloc_demote_folio externally invokable for migration Date: Mon, 26 Feb 2024 23:05:48 +0900 Message-ID: <20240226140555.1615-3-honggyu.kim@sk.com> X-Mailer: git-send-email 2.43.0.windows.1 In-Reply-To: <20240226140555.1615-1-honggyu.kim@sk.com> References: <20240226140555.1615-1-honggyu.kim@sk.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOIsWRmVeSWpSXmKPExsXC9ZZnoe71WXdSDU4sELaY2GNgMWf9GjaL XTdCLP7vPcZo8eT/b1aLEzcb2Sw6vy9lsbi8aw6bxb01/1ktjqw/y2Kx7haQtfnsGWaLxcvV LPZ1PGCyOPz1DZPF5EsL2CxeTDnDaHFy1mQWi9lH77E7CHv8PziJ2WPp6TdsHhuagMTOWXfZ PVr23WL3WLCp1KPlyFtWj8V7XjJ5bFrVyeax6dMkdo8TM36zeOx8aOnxYvNMRo/e5ndsHp83 yQXwR3HZpKTmZJalFunbJXBlbHjym73gkGDFtMmn2RsYN/N1MXJySAiYSByY2cnexcgBZl+f JwkSZhNQk7jychITSFhEwEFi1VeFLkYuDmaBBhaJH58vsYDUCAuESdxasBPMZhFQldix4ymY zStgJrF19jZWiPGaEo+3/2QHsTkFzCX+H25nA5kpBFRz9DYzRLmgxMmZT8BamQXkJZq3zmYG 2SUhcIpd4mPLUyaIOZISB1fcYJnAyD8LSc8sJD0LGJlWMQpl5pXlJmbmmOhlVOZlVugl5+du YgRG37LaP9E7GD9dCD7EKMDBqMTD61B7J1WINbGsuDL3EKMEB7OSCG+4zM1UId6UxMqq1KL8 +KLSnNTiQ4zSHCxK4rxG38pThATSE0tSs1NTC1KLYLJMHJxSDYwKC0Iq+iRk+wtOMx6fcP/m 4uKgw+oTP809kbxG4lzdzPaa+Z/lGrYcblm3/HBZ/dRHKVx/8r7tlPv5+yDXAkaGO+s2uXu7 7E1r3zVP6se5c6cVjD2inrp94nrs81HnV0+kW95hG8l3GVY6lhfdF4ao5NYo9RcaZB9vm7p9 RYu/UdcW1ZCPf94rsRRnJBpqMRcVJwIABBv4HboCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprLIsWRmVeSWpSXmKPExsXCNUNLT/f6rDupBgfPMltM7DGwmLN+DZvF rhshFv/3HmO0ePL/N6vFiZuNbBafn71mtuh88p3R4vDck6wWnd+Xslhc3jWHzeLemv+sFkfW n2WxWHcLyNp89gyzxeLlahaHrj1ntdjX8YDJ4vDXN0wWky8tYLN4MeUMo8XJWZNZLGYfvcfu IO7x/+AkZo+lp9+weWxoAhI7Z91l92jZd4vdY8GmUo+WI29ZPRbvecnksWlVJ5vHpk+T2D1O zPjN4rHzoaXHi80zGT16m9+xeXy77eGx+MUHpgDBKC6blNSczLLUIn27BK6MDU9+sxccEqyY Nvk0ewPjZr4uRg4OCQETievzJLsYOTnYBNQkrrycxAQSFhFwkFj1VaGLkYuDWaCBReLH50ss IDXCAmEStxbsBLNZBFQldux4CmbzCphJbJ29jRXElhDQlHi8/Sc7iM0pYC7x/3A7G8hMIaCa o7eZIcoFJU7OfALWyiwgL9G8dTbzBEaeWUhSs5CkFjAyrWIUycwry03MzDHVK87OqMzLrNBL zs/dxAiMtGW1fybuYPxy2f0QowAHoxIPr0PtnVQh1sSy4srcQ4wSHMxKIrzhMjdThXhTEiur Uovy44tKc1KLDzFKc7AoifN6hacmCAmkJ5akZqemFqQWwWSZODilGhjZNkyuCLp5K9RnIVvv BK/jzJd2fv5YuFJ0kqB47etlR0SNBHy9s7PU5Z+dnLlbueDFzfiM1A/Mc9tWv88t3V9o0+/j FhMptMBwh0blCYtZ65uz/z2Kaj2276LO18eTpxTeaWu8y78lz9Tn4b8TDNJ/9yxo+HR+S7zC pudtX1USPNaWlTpyTvuuxFKckWioxVxUnAgAPK1J3bACAAA= X-CFilter-Loop: Reflected X-Rspam-User: X-Stat-Signature: etwdgfqm6hnfyjqm7iqjummug86tuhbo X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 1D5D4140012 X-HE-Tag: 1708956382-955617 X-HE-Meta: U2FsdGVkX1+0QjZ8ES3LijXpzjZjPGRpDPZSJDhMIpah68pulO1Oxw3wPLh0Ia3qmFn93hDCzzlP7BiVIcEffjqetcIzxKmdvQ3wCnYydHQH6LYyuC7ip1cdJWxOhLdEzKv6/ITjF5ozylYs4vePrwyMpZUnAkBW1LaPEJ6yrv9cY5cfITfgAUp9R9IqPpEcm4ecWxCMmQc/+Y8M9Ll1g14JjtxX37PSeuoYCqQcBL/fY/YGOTPbU47r2UepUXGmzs28JcvVyGkV0KhKwu4/dmo05/Ez5GefOdCZ0aNZtHHjA8B3A/yG/deA0G10X3XxdZgC1EwZGqfl+B+AQIqqls2/jmfYbfDKWC+I5wlmh17JyAgdE5+r9OJpkFAxHul68x5HALkSz6ykRyEejBUeYffXZkcrayvII6vG0Y01e4rkAMdNnbCJnnxIl2BgfPkOu29fKRjEnkK7JRybG7lPZTmVNf7FFxF1kiOvxQ5/5mU2wuB7LPDFuakD2Kdr7KtUbD8zrJh6zd5MIrqDu+Z017KebpCjdgopRxS0UZtCJAlRdOSU6WEx3Ct6DyQdu4MxR2mudLVRfyySk9bz5kVgmFkbhR9Q6KE96V3pUCORRA3kY1JTa5MfmyAwOx/U+FVM7GHwhDOWhc0zmLgC8u7JfXcvttvHxh+Sqh1WAS13O5Jq2MExH/5+5nr8r1S2DcfOWB8TKY6jEplHJyiLF7UXHEUz9+LjYZUjpxS60Pcnc5FpZ5yT245FDEiWAwIjXPOq+njN4yuEqLodYuVKPA3lax2OO+ZvUS8ibO35jkvwphu+cmg6iPNpU/glPVQjalDPqfvbHFjNR02dsCUK+V3a47mQMTaEU39f71mkooYFT+A= 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 --- 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 b61034bd50f5..61af6641235d 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 bba207f41b14..b8a1a1599e3c 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);