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 3B85AC197BF for ; Thu, 27 Feb 2025 03:11:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BF6AB280003; Wed, 26 Feb 2025 22:11:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BA696280001; Wed, 26 Feb 2025 22:11:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A95C6280003; Wed, 26 Feb 2025 22:11:35 -0500 (EST) 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 8D4EF280001 for ; Wed, 26 Feb 2025 22:11:35 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 037DBA3DE3 for ; Thu, 27 Feb 2025 03:11:34 +0000 (UTC) X-FDA: 83164249350.11.D041801 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by imf09.hostedemail.com (Postfix) with ESMTP id EEA6D140007 for ; Thu, 27 Feb 2025 03:11:31 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=none; spf=pass (imf09.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740625893; 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; bh=ijm6JN31fuMSNDMwABQM5ZfCM0KD5edOz+N101QA1fM=; b=1SP1hw/hW38I1fef3mL1zSzy+gOTX1/yuZS4JCYQAakmnzPulwkgy/uTbAaOdGFn89Pu+p Z4rPgFFmUwk9EY9cC1PidDfdTF07CvcM25i/mP5Inb3ULo4kO0Vzls0ZB5EHQgD1/B0Xn7 1lrDY7qjf1BIUdcEnLYOkyZLGM+t4Uo= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=none; spf=pass (imf09.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.255 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740625893; a=rsa-sha256; cv=none; b=yBB0/xDghKxEXBvpT66PeLm2Be/xzrniEfNPe9TA08EtG/edoLDU6f2leAzxIXqihZ8pbo e5bMz8F8v9oA47xrPsKlWvGACh6wgx8LR1TeaATCiF9u04B6UnIWA2nrr97Z6PaVxmOLPZ p7mfcgvoRVoeP7yqq6e4pyWePQU+QMw= Received: from mail.maildlp.com (unknown [172.19.163.252]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4Z3GTD6G0cz1GDjH; Thu, 27 Feb 2025 11:06:40 +0800 (CST) Received: from kwepemo200002.china.huawei.com (unknown [7.202.195.209]) by mail.maildlp.com (Postfix) with ESMTPS id D2D4A1800DB; Thu, 27 Feb 2025 11:11:26 +0800 (CST) Received: from [10.174.179.13] (10.174.179.13) by kwepemo200002.china.huawei.com (7.202.195.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Thu, 27 Feb 2025 11:11:26 +0800 Message-ID: <44267aae-4209-c5d2-9d0a-b9eeb4bd4bf0@huawei.com> Date: Thu, 27 Feb 2025 11:11:25 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH] mm/hugetlb: fix set_max_huge_pages() when there are surplus pages To: David Hildenbrand , , , , , CC: References: <20250225141933.3852667-1-tujinjiang@huawei.com> From: Jinjiang Tu In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.179.13] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To kwepemo200002.china.huawei.com (7.202.195.209) X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: EEA6D140007 X-Stat-Signature: hsy7515xszpyzznjbnfzan8iuwd6iub5 X-Rspam-User: X-HE-Tag: 1740625891-850997 X-HE-Meta: U2FsdGVkX19frJkX9Vgyq1wH2+8jN5kjJPSnscYJNus0RD5rkoq2PVQO0SgaCzeLLopeXtxX66AR13LbGId5JXGnreIOZYYNdqDBXwR2lAbmwGptMVbHCciBYpSLuPwrNMTrDfQog9oBvE5kLOPGKuLdqnryZIoXIbeOt48VbX6E7xKzPFSxI2ixxGRdVfWMqf+ZjnOP5SPU64RtdR0KsFYb11vI6wu2QVTcvpzDZVT2cboeJIsXUvF5GPj7S+tHgPIdCEbDNXGR3UwCqLsOEP9nNdIDXRmsScPF9noEsEv257GUpZZ3AvG6/gEcFWNKddTghec+ZaxmQJ4Ma29NtuaBTsIlSV18xiEe23DI9MA4FmOr85UEZtciDdqrZaR/t+UsZCyj8WoTKoEq1KzErvleGwboLIZgVbE0x7gHG2Z9kV6BJ52k3SgVignZqhS3D1DPcbaJcoKVp5qtfyNa4p8CvIjeo1PW0/lLI8S9XgsUeNE5EkHMIREAcbzXutDh5IeERWBqb5VZSF1uXfGt81//BYPeseXHvnM82SZOUYMsHieJvCJ2mr/eCatQjD0Pmepw80N8ZolqmZIcHWEpUfz3N6NQdgVK8U6hqMXaj2Swtjy861s54y9qSDmeAiodYbLC5dB6eJ80D4WsubYM5R20+xOBV6w9pftbKcUu2i466NgrxYhS7f0XTCoFPrV7LGU01OfxcQcgZbdKtxr2dR06TGuPB4ZwzHLVj2lJ/5JmHpvfLi4X3eeQibqYsAFQpBYCh0j+X9Hr/dKhzPtJCAfgwpMuaZ7V4RjQCQCuRWMKFXN45izzib/dcJHn3jn5+vVnNNx3n1PjqWoo/8a9TIFJUDLFQvchNE+BA88uIcKtD512AL6UxZOrvfcJIlOxcqkkP32Z9/qS/OmoYY8xp8MxJEro7kT9J574RNKHkUzr9oYl5qj4iSq4jwJlk+BuCojVjdFqmX0GwJ7ughy VowikbZ5 t0wV96/NWrANXIGz0Y+w5Gta9NE9Ub64HxPLr670jpLCVdl6SH0srIOBhTfxftP5B1GGMnCfXATpoUC0Fl+/eOl4sq5m2A/eTGCOsTgvfX62iWyspuM8hgPAoBWoOkZ4HVIcY/GxH3xQ9c6PXMuFJjb4NinsosKg2U0qj8Zmu0qkT3b9PAdrwKTMVNGBbDd0qzKgEzQDR5Dh5qwRn7qeGld3sgqGjWLqMZmXE 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: 在 2025/2/26 23:57, David Hildenbrand 写道: > On 25.02.25 15:19, Jinjiang Tu wrote: >> In set_max_huge_pages(), min_count should mean the acquired persistent >> huge pages, but it contains surplus huge pages. It will leads to failing > > s/leads/lead/ > >> to freeing free huge pages for a Node. >> >> Steps to reproduce: >> 1) create 5 huge pages in Node 0 >> 2) run a program to use all the huge pages >> 3) create 5 huge pages in Node 1 >> 4) echo 0 > nr_hugepages for Node 1 to free the huge pages >> >> The result: >>          Node 0    Node 1 >> Total     5         5 >> Free      0         5 >> Surp      5         5 > > Can you also share the results after your change? With this patch, step 4) destroys the 5 huge pages in Node 1 The result with this patch:          Node 0    Node 1 Total     5             0 Free      0             0 Surp     5             0 > > >> >> Fixes: 9a30523066cd ("hugetlb: add per node hstate attributes") >> Signed-off-by: Jinjiang Tu >> --- >>   mm/hugetlb.c | 2 +- >>   1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/mm/hugetlb.c b/mm/hugetlb.c >> index 163190e89ea1..783faec7360b 100644 >> --- a/mm/hugetlb.c >> +++ b/mm/hugetlb.c >> @@ -3758,7 +3758,7 @@ static int set_max_huge_pages(struct hstate *h, >> unsigned long count, int nid, >>        * and won't grow the pool anywhere else. Not until one of the >>        * sysctls are changed, or the surplus pages go out of use. >>        */ >> -    min_count = h->resv_huge_pages + h->nr_huge_pages - >> h->free_huge_pages; >> +    min_count = h->resv_huge_pages + persistent_huge_pages(h) - >> h->free_huge_pages; >>       min_count = max(count, min_count); >>       try_to_free_low(h, min_count, nodes_allowed); > >