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 C4B6CC282C6 for ; Mon, 3 Mar 2025 11:23:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5B53D6B008A; Mon, 3 Mar 2025 06:23:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 53EE96B0096; Mon, 3 Mar 2025 06:23:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3DF146B0098; Mon, 3 Mar 2025 06:23:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 205C66B008A for ; Mon, 3 Mar 2025 06:23:17 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CE21BA395F for ; Mon, 3 Mar 2025 11:23:16 +0000 (UTC) X-FDA: 83180003592.18.19F6DFD Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by imf22.hostedemail.com (Postfix) with ESMTP id 7807AC0007 for ; Mon, 3 Mar 2025 11:23:12 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf22.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.191 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741000993; 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=5Nwi44287fVSb+u8NkKuehd17yYcyFSCvHDgN+yAyVE=; b=5hd/D5YH0Yv53kzpKwedpRR2jmL5s8ArgbwHCl3Xnih81RJljP9dY3wg82oheL6mBLXARa yL/eewC8LcVaIktjuw5YypQ0Dzb1M/CeSdwiF2csmp6KE3lFGe4gWkWjQlMNSxjeXuoTDF RxFWv8OmnzpgZAIS1/30XzE8dgkGe8M= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf22.hostedemail.com: domain of tujinjiang@huawei.com designates 45.249.212.191 as permitted sender) smtp.mailfrom=tujinjiang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741000993; a=rsa-sha256; cv=none; b=KIA2wkjfjlamIVo0u8iCxMCS98yoZ6vBeddgl/ImKCI1wO3w3X/9ovYfRqpl7BISAiM7bu AhhLf8Nlr/OiAVSJgOFDL6WlEVZq+yt6zidioQ5LSBEgKFs/I8WIpCtCXFeMlQ/GI3uHfx xyjREoxFIZtOkgtB16K9t/FBABpgoKs= Received: from mail.maildlp.com (unknown [172.19.88.163]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4Z5xCQ5BJtz1ltZ8; Mon, 3 Mar 2025 19:18:58 +0800 (CST) Received: from kwepemo200002.china.huawei.com (unknown [7.202.195.209]) by mail.maildlp.com (Postfix) with ESMTPS id A606F18001B; Mon, 3 Mar 2025 19:23:08 +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; Mon, 3 Mar 2025 19:23:07 +0800 Message-ID: <21afe09a-8f79-45ad-1b23-7fcb67218ea2@huawei.com> Date: Mon, 3 Mar 2025 19:23:07 +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 surplus pages in dissolve_free_huge_page() From: Jinjiang Tu To: David Hildenbrand , , , CC: , , References: <20250303060920.2886263-1-tujinjiang@huawei.com> <114987e9-a449-4cc7-b897-b5b00a3cf445@redhat.com> 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: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemo200002.china.huawei.com (7.202.195.209) X-Stat-Signature: 6pepejc94tnahjqskg3xtxiid5uki548 X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 7807AC0007 X-Rspam-User: X-HE-Tag: 1741000992-824009 X-HE-Meta: U2FsdGVkX1+v55MYCq0OSDZ8WNdrjs4V0TBig+LivuSWBrWPAPVcoOXsCOBOg6LF5FEqKFyfyHisfFe8O7DvK93wmsJj/y783i4wOB3dPqxhtyh+97IQX97YWH/QcbsgWjwPdVGaMVrK6d+z2R4AKgRexH7dDExKZ4XSDgblupZLKrQObhL77dtBCtwA6kXdcCegzpz9hNm3Zl7rYUn5v4JEi84NRuuDg9ekEq6lBibaqiX2vNWGm9MmQ6zMiOU9VTNJk3s7kczvBxWpROwDhPlnuBiWCBX3+wEEIB9jBdB9yrO3Ncm9SmS77av+rnr3YT60szMPVI14L8X7tPS/kHiUMtTjHmIqGs57fiOljCHZBYDR17RG7mlExrdQic5XZgwMXeDbTJIK6+kvZGuxDKqmyUvab/P/tDUgXn3G+f5ulNKptB3YsJmWdrOyO0s9JKLa0hCN/gq45sK0gP6VhQ19YiDWjla2ZOgW27OO2c+JE2+O1dBn7F83EDncTbxyCx+BMgQFQlzUmtAa1iwANSc/lEogHyM5HIyOfCOwrG6gI3+qSn3PUYbm8J3NSgrd8rallxKbMmlCRM+kZb1Gay2rfU4eMlTqvI6DyXTAjUwMlycdi6S1orBDd9XdMLOwA0EbNHi6QO9dU8bB4lRwkqgi/Z6WXzH3fQKGS+cXaj1IiMWCLpFgWvreXsWEJJ00H2MnxJ5oFneBAnI0TjPUIXwC1najGgnh9sPKt9q7Eto/+uqH+yg32r4NRdiSiSdEe/vVhWXg6B2Cb9jpTRvE6ou52aPRTplVMFlPFjDJfno4aV4Q2ZVcd/feDLqNHSA1qFWgEGAny6XPyRfZBNAJcCoRMGzWl7mZx+mnfF5n12M5wvzdPl5KD2h8gkc5hcQGWfq7oDafGwqq0adMvhZq/00f2F/+GGpkFvNGvJagQ/dim7TeOB8aI5hZJagQDAGQyCHTkcjJGi+/MgA8G+O ovuvTG81 O3e3COJsowt8WQhV3lgB4vBS81hWJIywOUtN5onazd5kRfSUrUMO7lOA52bb4cHbRji4RXfunx0zWhzmP6tkRM0rSUmz4U6ehF1lNyzCE4PhZmFnzodDGtkXP/PurfPd9qL+5a4waTM6odnxuh8fdoE6H3D4l5TJdt+qTRDetaip3NlQrTBfdk4LEfIPE6W3DmxwnrnUyzh5XOEQ= 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/3/3 19:16, Jinjiang Tu 写道: > > 在 2025/3/3 18:25, David Hildenbrand 写道: >> On 03.03.25 07:09, Jinjiang Tu wrote: >>> In dissolve_free_huge_page(), free huge pages are dissolved without >>> adjusting surplus count. However, free huge pages may be accounted as >>> surplus pages, and will lead to wrong surplus count. >>> >>> Steps to reproduce: >>> 1) create 64 huge pages for node1 >>> 2) run a program to reserve (don't consume) all the huge pages >>> 3) echo 0 > nr_huge_pages for node1. After this step, free huge >>> pages in >>> Node1 are surplus. >>> 4) create 80 huge pages for node0 >>> 5) offline memory of node1 and kill the program in step 2) >> >> Can you elaborate the "offline memory" part? How much are you >> offlining (the complete node vs a single memory block?) > I reproduce this issue on qemu. The memory onlining and offlining > operations are: > > 1)Node1 is memory-less at first. Hot-add memory to node1 by executing > the two commands in qemu monitor > object_add memory-backend-ram,id=mem1,size=1G > device_add pc-dimm,id=dimm1,memdev=mem1,node=1 > > 2)online one memory block of Node1 with: > echo online_movable > /sys/devices/system/node/node1/memoryX/state > > 3) offline the memory block of Node1 with: > echo offline > /sys/devices/system/node/node1/memoryX/state The memory range to offline contains the free surplus huge pages created in step1) ~ step3) >> >> If I skip the offlining part, it all works as expected on a 6.12 kernel. >>