From patchwork Thu Mar 20 04:17:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rakie Kim X-Patchwork-Id: 14023424 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 DE015C28B30 for ; Thu, 20 Mar 2025 04:18:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1997E280002; Thu, 20 Mar 2025 00:18:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 14AE4280001; Thu, 20 Mar 2025 00:18:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F2D13280002; Thu, 20 Mar 2025 00:18:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id D3D95280001 for ; Thu, 20 Mar 2025 00:18:21 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id AB371160B62 for ; Thu, 20 Mar 2025 04:18:21 +0000 (UTC) X-FDA: 83240622402.16.74FE52F Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf09.hostedemail.com (Postfix) with ESMTP id 319A5140003 for ; Thu, 20 Mar 2025 04:18:18 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=none; spf=pass (imf09.hostedemail.com: domain of rakie.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=rakie.kim@sk.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742444300; 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:references; bh=Au0MLMFc800FRArPfjP7H3h2X0MXv8aQFBHmsxlYs0Q=; b=NzlivhtccUEwB1xKE1yK1IilxJ37q/6uUXx8xsKQW1KjON5X9jP/fb0rvEfd2bpFvHrjov fKgk+ig/EH6DcS3+nJnt2NaHcbbbQqRbys+Lv50wzokEHvroCCFJMS/UO7cymUKgtwLHQf ktCQaSh+ydMZRXKAqEJhnDKG8Vif6PM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742444300; a=rsa-sha256; cv=none; b=djH0IW0Ef/CTgPVguNMf1zCmeMY02k9MpyqzY4HugRFIobQYZHsuCc24w9M4OEnzerjj6I CiGWisS+blTvn8HebbGowDKqK3QOQQpGzdzBHEPlNUkADdPQToCDkMAL637OL38cJhkfvr YiZVzjV+UAs29ivn6HIx75wr9zF7lxw= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=none; spf=pass (imf09.hostedemail.com: domain of rakie.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=rakie.kim@sk.com; dmarc=none X-AuditID: a67dfc5b-681ff7000002311f-39-67db9705e331 From: Rakie Kim To: gourry@gourry.net Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-cxl@vger.kernel.org, joshua.hahnjy@gmail.com, dan.j.williams@intel.com, ying.huang@linux.alibaba.com, david@redhat.com, Jonathan.Cameron@huawei.com, kernel_team@skhynix.com, honggyu.kim@sk.com, yunjeong.mun@sk.com, rakie.kim@sk.com Subject: [PATCH v3 0/3] Enhance sysfs handling for memory hotplug in weighted interleave Date: Thu, 20 Mar 2025 13:17:45 +0900 Message-ID: <20250320041749.881-1-rakie.kim@sk.com> X-Mailer: git-send-email 2.48.1.windows.1 MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrJLMWRmVeSWpSXmKPExsXC9ZZnoS7r9NvpBg+mKFnMWb+GzWL61AuM Fl/X/2K2+Hn3OLvFqoXX2CyOb53HbnF+1ikWi8u75rBZ3Fvzn9Vi9ZoMBy6PnbPusnt0t11m 92g58pbVY/Gel0wemz5NYvc4MeM3i8fOh5Ye7/ddZfP4vEkugDOKyyYlNSezLLVI3y6BK2PZ jCbmgk7hisNbJ7A1MN7j72Lk5JAQMJE4830TG4y9/tJnpi5GDg42ASWJY3tjQMIiAqIS847O Zuli5OJgFrjGJHHg800WkISwQITEz7+XwHpZBFQlDj/vBLN5BYwlPi+6xAwxU1Oi4dI9Joi4 oMTJmU/AepkF5CWat85mBhkqIXCZTeJZZzM7RIOkxMEVN1gmMPLOQtIzC0nPAkamVYxCmXll uYmZOSZ6GZV5mRV6yfm5mxiBAbys9k/0DsZPF4IPMQpwMCrx8L64citdiDWxrLgy9xCjBAez kgivSMftdCHelMTKqtSi/Pii0pzU4kOM0hwsSuK8Rt/KU4QE0hNLUrNTUwtSi2CyTBycUg2M 7YsdUtpm+Vl8Md133VM+W9c9ZPMjH/brwcKHWDYsU3LIbjm57EqEW9NfqVczm0td0rkfr6iZ 1/tQboJcxq/NPFPs5P5d3LDA921hgselZexLUhZYnHqfOHuJgA+fiWJVvditOL/Efdzz/9Zu uFZ3gz39lMrkjlMPM83mO6iXFBg53r+uIb5EiaU4I9FQi7moOBEAzlTsYlwCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrMLMWRmVeSWpSXmKPExsXCNUNNS5d1+u10g+WbhCzmrF/DZjF96gVG i6/rfzFb/Lx7nN3i87PXzBarFl5jszi+dR67xeG5J1ktzs86xWJxedccNot7a/6zWhy69pzV YvWaDIvf21awOfB57Jx1l92ju+0yu0fLkbesHov3vGTy2PRpErvHiRm/WTx2PrT0eL/vKpvH t9seHotffGDy+LxJLoA7issmJTUnsyy1SN8ugStj2Ywm5oJO4YrDWyewNTDe4+9i5OSQEDCR WH/pM1MXIwcHm4CSxLG9MSBhEQFRiXlHZ7N0MXJxMAtcY5I48PkmC0hCWCBC4uffS2wgNouA qsTh551gNq+AscTnRZeYIWZqSjRcuscEEReUODnzCVgvs4C8RPPW2cwTGLlmIUnNQpJawMi0 ilEkM68sNzEzx1SvODujMi+zQi85P3cTIzBol9X+mbiD8ctl90OMAhyMSjy8L67cShdiTSwr rsw9xCjBwawkwivScTtdiDclsbIqtSg/vqg0J7X4EKM0B4uSOK9XeGqCkEB6YklqdmpqQWoR TJaJg1OqgfEhh98qxtCjVhPWekTeCjgQP1Ftd8019U13OLnOZD/9UX9Kp7hohnNfg4DF0vNf XdatXnwh5frEtKf2KSVlWyNMKu3y1+qXzJ9uInjC49qqRyvM1vJM1n6kJvCiRHaKtNfHvJ4V hetF9G9q7t0R1dt8PcGtb0mc+bx3Gut/3QmNPj4/cuUj5wdKLMUZiYZazEXFiQDQhcXKVgIA AA== X-CFilter-Loop: Reflected X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 319A5140003 X-Stat-Signature: brqpuup84de8gtjgn5rajstbt4fpt6u1 X-HE-Tag: 1742444298-321859 X-HE-Meta: U2FsdGVkX1+RCxGxu1NMRSLoCKFCL4FVW7rC6tLMgtOSo8hnvlJlUi+r4l1N1Hzy4FiAlF6dIyo9PDif13m5iwWiTursxVfjvvSzucY8tjskxkl/cLGblCJiH76Ycq2+/eWtzkEv3e03hHydQwfnlgJWv6akNK+3OA1uoeMo0JpWQE5IDqrPnAI9jgsEYTbqs4rI32ku3FUuWAMeqdRBtrvi+6XVlFjUYug9n0gs6rBdGo+Qfj9XESIOWel8fMDBpxxKLjNbTKrFxSEcgTJ0DTaBVlmbAdIxJVIoF3lmYqwBA+7FhnYVemW6OfWhDIk2vH0XLlAM5+k+x0Vl81XGrh2N8jJi14pHSbSirdoI4sQAeZt3hsWP2Rn/yYK/WHy+ELNkWKJQLnX6NAE/T7t20BKcH1D/5u3nH8JJIrDxqRTIL0pEVw4Q/A2rKTNhdLncrhhPFTe71/0ha8NldPGePOmhAMHnVDQqkrWS0eabdoKWnE/HiDCAe/ZRwCV6+e9jQgUv54eh855VfRK6skBtkzZAUUT3dk2Ju7hnm8+H5hSLrgHK9B7NZCS5xV05dAbUke9E7tVKd/7cAnmXaqClAMKwiaIoYm9FJibP1EvBp5m3BqOJGmOl7m52B5c+VcVi/aTptmJssF2ngRgA/IdRrAG+N4iBppWrSRlcCevCscI65wZPqsToPyEp60CW5/oWbew9AFePSi6clsfqFegQBP1D9G8KDXrSFEwAHadjeTv4J7yTEzorvNQlQKw7Iw3oP1BI+6fIRzIMQaSV8+DaRHN2bmmRl9DxmetVW+pkoBFK9x8J99/kH43+ilnBbQaTqd3kh+PLZ0EGnNifwzjwEBSlyXf4BQxjL8QqEto3YkMGa0l0dAvIRYOoThT/ptOMBuZur5smRCeU0xIQOtnacuQGFIwdTkhKur52je3PjOZNOMX3/LMUeuclai4Fr95+cULl1OgoxDTEA5+k6Q8 1u/MUuaf c/gFT8SVqTOy78ZtJxHA7b733L0Q0KVmRFyoWIgqPZPcx3J0= 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 following patch series enhances the weighted interleave policy in the memory management subsystem by improving sysfs handling, fixing memory leaks, and introducing dynamic sysfs updates for memory hotplug support. ### Background The weighted interleave policy distributes memory allocations across multiple NUMA nodes based on their performance weight, thereby optimizing memory bandwidth utilization. The weight values are configured through sysfs. Previously, sysfs entries for weighted interleave were managed statically at initialization. This led to several issues: - Memory Leaks: Improper `kobject` deallocation caused memory leaks when initialization failed or when nodes were removed. - Lack of Dynamic Updates: Sysfs attributes were created only during initialization, preventing nodes added at runtime from being recognized. - Handling of Unusable Nodes: Sysfs entries were generated for all possible nodes (`N_POSSIBLE`), including memoryless or unavailable nodes, leading to unnecessary sysfs attributes and misconfiguration issues. ### Patch Overview 1. [PATCH 1/3] Fix memory leaks in weighted interleave sysfs - Ensures proper cleanup of `kobject` allocations. - Replaces unnecessary `kfree()` calls with `kobject_put()`, preventing memory leaks and improving system stability. 2. [PATCH 2/3] Enable dynamic updates for weighted interleave sysfs - Restructures sysfs handling to allow runtime updates. - The sysfs attributes are now globally accessible, enabling external modules to manage interleave settings dynamically. 3. [PATCH 3/3] Support memory hotplug in weighted interleave - Modifies sysfs creation logic to restrict entries to nodes that are online and have memory, excluding unusable nodes. - Introduces a memory hotplug mechanism to dynamically add and remove sysfs attributes when nodes transition into or out of the `N_MEMORY` set. - Ensures that sysfs attributes are properly removed when nodes go offline, preventing stale or redundant entries from persisting. These patches have been tested under CXL-based memory configurations, including hotplug scenarios, to ensure proper behavior and stability. mm/mempolicy.c | 191 +++++++++++++++++++++++++++++++------------------ 1 file changed, 123 insertions(+), 68 deletions(-) base-commit: 4701f33a10702d5fc577c32434eb62adde0a1ae1