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 76FB3C83F33 for ; Tue, 5 Sep 2023 09:06:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 799D0940008; Tue, 5 Sep 2023 05:06:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 71F8D8E001A; Tue, 5 Sep 2023 05:06:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5C251940008; Tue, 5 Sep 2023 05:06:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 49C728E001A for ; Tue, 5 Sep 2023 05:06:48 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 16313140B62 for ; Tue, 5 Sep 2023 09:06:48 +0000 (UTC) X-FDA: 81201963696.11.2A4C54C Received: from out-216.mta1.migadu.com (out-216.mta1.migadu.com [95.215.58.216]) by imf17.hostedemail.com (Postfix) with ESMTP id 2111340026 for ; Tue, 5 Sep 2023 09:06:44 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=YeInnGtG; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf17.hostedemail.com: domain of muchun.song@linux.dev designates 95.215.58.216 as permitted sender) smtp.mailfrom=muchun.song@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693904805; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=6WSGRlaiNC1R3mV1aF/oPdGsK0yZLaYBkuQ0mh781X8=; b=Us/MfZeaJo9pQvyOQG4fVIyb62SotK1RqyxIZTBNhpnriEn9z7eJwsFiA1p5E3q6m1xxeb vPH4Ou6PXWOn4OLwEaZph9O6bqEH7NzM0SVNeJBVz8fHKXMmijPcGLRbFZD0LwE1X5cxuS 0fjuUfDhO6/np02MeILh7C6p/pjqw+s= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=YeInnGtG; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf17.hostedemail.com: domain of muchun.song@linux.dev designates 95.215.58.216 as permitted sender) smtp.mailfrom=muchun.song@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693904805; a=rsa-sha256; cv=none; b=Q1ri23//YZgAC9Y3ymnwKY/Q9+UvReM3GEZoOtAoBWK01VMp4YIeUxI5N7oPW9wQv/FJI8 rrZYIVmKvJcJm8dETafPLvmoBIMXsKFZjOp3JK+f3vRQBv33bhlAB/uxl2LkQZ6BWYO3rO 4iAf0UZiKmGyEHcS1hUEKZNK0ZwwBb8= Content-Type: text/plain; charset=us-ascii DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1693904802; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6WSGRlaiNC1R3mV1aF/oPdGsK0yZLaYBkuQ0mh781X8=; b=YeInnGtGL7iM+LAtoDBiwsipumII/DCjrmxrws7+O63Zn5vx0+TAzkpk/pAEjT9D/xXIVZ NPHV2VKzQ69TY05c5E1jH73w9Q3TH8dnb1Ubfnvpx/bp4wob05JWDZLA9h/fp72GOBuVQQ auMelXeA/qIWlLumED57tyYcKw6XFhI= Mime-Version: 1.0 Subject: Re: [PATCH 1/2] mm: hugetlb_vmemmap: fix hugetlb page number decrease failed on movable nodes X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Muchun Song In-Reply-To: <20230905031312.91929-1-yuancan@huawei.com> Date: Tue, 5 Sep 2023 17:06:02 +0800 Cc: Mike Kravetz , Andrew Morton , Linux-MM , wangkefeng.wang@huawei.com Content-Transfer-Encoding: quoted-printable Message-Id: References: <20230905031312.91929-1-yuancan@huawei.com> To: Yuan Can X-Migadu-Flow: FLOW_OUT X-Rspamd-Queue-Id: 2111340026 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: mryj5ss5fo91fb417xqjweyi73uag1sp X-HE-Tag: 1693904804-811051 X-HE-Meta: U2FsdGVkX1+nfFqkIq30cgaxUlUk3CG0NDMarCUlIUvQGfks1+zCKurIVPiuuT1oy+/b36ESpoMd81LcH7u19cdHo7aTQUQymtOIYK/iEx2MyhUSs1G7ZaTWjQydtqZ58yBhe+EH0dHYsKZvcPVIoPcGvnYWkx/gaXBkR7JUNDqIwmyJWkF6Q0ASfDr1nrKvPHAoZeZqJ3eyW891gJNL9xXA1f+LCQXNWrTGnpcltUbITtXUDnijUZW+gncaeoiXMG2h96X5RPwO73+HyDFSWan/s4lpm6LNolEaaKt7SQCd3gxWw523Q+s08sGUZquivNJ6/Xz9HudsfiJx+0u9eNvXcQQ2GEHXLps4bN/GmZr2tRQcoYjQQuO/HFvB+r/tvEqsh/NtOONGtJ3+TC43j62QhXlKB8CaRYrPCWJnVdP52+L6M4ghz+jMcgwYIr4dH2lUpUrEufWb0RmlHTYmw37o5tKVqKFZv7UE5NnffkocJZom72Dv5GeyppMFoilZrAm9ESOtmp4YntluMJtftw4tBWXrds+ifz4Wo9NreKGSYFwkyZ54X0i1IOHJz5qhQOF1poRxod99DHt4L4+1JyRW+llhggEOcnjADsb2G4LohNfetBN2w66T9as+GqT9dfjISiM2m1lXK6zN90sUze1/f3/R60gfyiYqiiCXmB4TvdYFah3U5p8rurXmkxEwsPdWbt1v+UNwvbY/4puJ7NJpmOZ7RBdgZ3xAU4NXZ9AqvRie7hrqS5u2O1c+wEcNzXhzCoq6wZoENZOeHtGHTHqdYBRwB41vT/gWdxt9ZjIPzy+smX9Lm5Kz7Q+cjCLgK3l0Kp14VKj1Z0GjIMbjSjGJUGO0XDia+J5XS9Nnb27qKn7ad89s/FOB7SblDOf36Dg6X+2naC/245a4j1ZtkJNWaZjuRL1HYHl6Mlm4iuCYEEc4KjWqS0soSxYVebq33pns1xb00s02+6nlFNF 6NxM5aGe JnDNxO2t3G2jEUx2AroN+lJNbfsO0tQbWawS5ETYhn+Heom+lUKFS5EVeL1Z7PvYauoMVD4xI1xzEr/fL6cQ3grWtD7CsDxkKg6Q6KqU8fdzTXkJUhZOLZSSOdLHCVNsTjIWGd9mqlisXwvwCkOO0wpI2SDA3T22bLtcdbf9wrsWbfdCFw62MD7X8Rk3yqntqgE2eb6orUuE8GuGEYZAXW0r2VCDyn/HnEzV8XoJ5JB/gSy/CvLPS2BUO1A== 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 Sep 5, 2023, at 11:13, Yuan Can wrote: >=20 > The decreasing of hugetlb pages number failed with the following = message > given: >=20 > sh: page allocation failure: order:0, = mode:0x204cc0(GFP_KERNEL|__GFP_RETRY_MAYFAIL|__GFP_THISNODE) > CPU: 1 PID: 112 Comm: sh Not tainted 6.5.0-rc7-... #45 > Hardware name: linux,dummy-virt (DT) > Call trace: > dump_backtrace.part.6+0x84/0xe4 > show_stack+0x18/0x24 > dump_stack_lvl+0x48/0x60 > dump_stack+0x18/0x24 > warn_alloc+0x100/0x1bc > __alloc_pages_slowpath.constprop.107+0xa40/0xad8 > __alloc_pages+0x244/0x2d0 > hugetlb_vmemmap_restore+0x104/0x1e4 > __update_and_free_hugetlb_folio+0x44/0x1f4 > update_and_free_hugetlb_folio+0x20/0x68 > update_and_free_pages_bulk+0x4c/0xac > set_max_huge_pages+0x198/0x334 > nr_hugepages_store_common+0x118/0x178 > nr_hugepages_store+0x18/0x24 > kobj_attr_store+0x18/0x2c > sysfs_kf_write+0x40/0x54 > kernfs_fop_write_iter+0x164/0x1dc > vfs_write+0x3a8/0x460 > ksys_write+0x6c/0x100 > __arm64_sys_write+0x1c/0x28 > invoke_syscall+0x44/0x100 > el0_svc_common.constprop.1+0x6c/0xe4 > do_el0_svc+0x38/0x94 > el0_svc+0x28/0x74 > el0t_64_sync_handler+0xa0/0xc4 > el0t_64_sync+0x174/0x178 > Mem-Info: > ... >=20 > The reason is that the hugetlb pages being released are allocated from > movable nodes, and with hugetlb_optimize_vmemmap enabled, vmemmap = pages > need to be allocated from the same node during the hugetlb pages Thanks for your fix, I think it should be a real word issue, it's better to add a Fixes tag to indicate backporting. Thanks. > releasing. With GFP_KERNEL and __GFP_THISNODE set, allocating from = movable > node is always failed. Fix this problem by removing __GFP_THISNODE. >=20 > Signed-off-by: Yuan Can > --- > mm/hugetlb_vmemmap.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) >=20 > diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c > index c2007ef5e9b0..0485e471d224 100644 > --- a/mm/hugetlb_vmemmap.c > +++ b/mm/hugetlb_vmemmap.c > @@ -386,7 +386,7 @@ static int vmemmap_remap_free(unsigned long start, = unsigned long end, > static int alloc_vmemmap_page_list(unsigned long start, unsigned long = end, > struct list_head *list) > { > - gfp_t gfp_mask =3D GFP_KERNEL | __GFP_RETRY_MAYFAIL | = __GFP_THISNODE; > + gfp_t gfp_mask =3D GFP_KERNEL | __GFP_RETRY_MAYFAIL; There is a little change for non-movable case after this change, we fist = try to allocate memory from the preferred node (it is same as original), if = it fails, it fallbacks to other nodes now. For me, it makes sense. At = least, those huge pages could be freed once other nodes could satisfy the allocation = of vmemmap pages. Reviewed-by: Muchun Song Thanks. > unsigned long nr_pages =3D (end - start) >> PAGE_SHIFT; > int nid =3D page_to_nid((struct page *)start); > struct page *page, *next; > --=20 > 2.17.1 >=20 >=20