From patchwork Fri Apr 4 07:46:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rakie Kim X-Patchwork-Id: 14038178 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 19F19C36010 for ; Fri, 4 Apr 2025 07:46:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4E346280003; Fri, 4 Apr 2025 03:46:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 492A8280001; Fri, 4 Apr 2025 03:46:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 35A1D280003; Fri, 4 Apr 2025 03:46:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 170BC280001 for ; Fri, 4 Apr 2025 03:46:36 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B90FA122488 for ; Fri, 4 Apr 2025 07:46:36 +0000 (UTC) X-FDA: 83295579192.29.1E031E7 Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf19.hostedemail.com (Postfix) with ESMTP id 4F22B1A000B for ; Fri, 4 Apr 2025 07:46:34 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf19.hostedemail.com: domain of rakie.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=rakie.kim@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743752795; 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=ZpBWbqY4la4TaIXxaxoNTlHTghKvh4CKZFJmbrnYsgg=; b=IyaNwy2lme7BOqgsG2zWaaQeXu/tBWPUCXy9qdddJMolUaKwq12irHZ20p70r9PHu4chmY DM6BQyHxMtJzM4777DpPsciE3hu9jicuhvCgDQ9oBiRMFk4g6KKwMf8nL6ILqFJ7NmsCW8 nHWTineRinEN1OyWxy4ew/MqXANKmt4= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf19.hostedemail.com: domain of rakie.kim@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=rakie.kim@sk.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743752795; a=rsa-sha256; cv=none; b=uE5ubFyUTKukgGDRCZ4Z+JywllM5N1jeZSKeGlZet+qUW2qbMCZDrh1IHKUK/vywbKQ3Xn mBy5rktxQhJI8MkDimNAmE9is66k4LTE15xz9pch34+lDqTgdBQeWqeick2iWm9zt2tPal 3IPunbcF9GMV+RWLLuWafqC6CH35Sag= X-AuditID: a67dfc5b-681ff7000002311f-c2-67ef8e57bba5 From: Rakie Kim To: akpm@linux-foundation.org Cc: gourry@gourry.net, 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, osalvador@suse.de, kernel_team@skhynix.com, honggyu.kim@sk.com, yunjeong.mun@sk.com, rakie.kim@sk.com Subject: [PATCH v6 0/3] Enhance sysfs handling for memory hotplug in weighted interleave Date: Fri, 4 Apr 2025 16:46:18 +0900 Message-ID: <20250404074623.1179-1-rakie.kim@sk.com> X-Mailer: git-send-email 2.48.1.windows.1 MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrILMWRmVeSWpSXmKPExsXC9ZZnoW543/t0g99PzC3mrF/DZjF96gVG i6/rfzFb/Lx7nN1i1cJrbBbHt85jtzg/6xSLxeVdc9gs7q35z2pxZlqRxeo1GQ7cHjtn3WX3 6G67zO7RcuQtq8fiPS+ZPDZ9msTucWLGbxaPnQ8tPd7vu8rmsfl0tcfnTXIBXFFcNimpOZll qUX6dglcGS/3/WIvWCtUceFgF3sD4xL+LkZODgkBE4n5r9vYYOxTS1exdjFycLAJKEkc2xsD EhYRkJWY+vc8SxcjFwezwGMmiUfPXzCCJIQFIiQ+PrrKCmKzCKhK3P/+nwXE5gWas/DjTnaI mZoSDZfuMUHEBSVOznwCVsMsIC/RvHU2M8hQCYHbbBJzrjxihWiQlDi44gbLBEbeWUh6ZiHp WcDItIpRKDOvLDcxM8dEL6MyL7NCLzk/dxMjMKCX1f6J3sH46ULwIUYBDkYlHl6LwnfpQqyJ ZcWVuYcYJTiYlUR47+a8TxfiTUmsrEotyo8vKs1JLT7EKM3BoiTOa/StPEVIID2xJDU7NbUg tQgmy8TBKdXAqLqv9sc3gfYFW5+2LyvcVav2LNnKPmGeyL7pHgIfHNgf/P08NU59rab59IfT 1fPON112Slkb67dI8qqz6f8NC7iDu+zv/2+fcTD1gcnRAx4295ZYR/0+E3j/fPmZ50Y3T/jp 80tyzMrMTrhi6JCsfrs/NPjRn5iA2EiD99FXedjEpygW5Fp9UGIpzkg01GIuKk4EAJKXlwhk AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrNLMWRmVeSWpSXmKPExsXCNUNNSze87326wYxmDYs569ewWUyfeoHR 4uv6X8wWP+8eZ7f4/Ow1s8WqhdfYLI5vncducXjuSVaL87NOsVhc3jWHzeLemv+sFmemFVkc uvac1WL1mgyL39tWsDnwe+ycdZfdo7vtMrtHy5G3rB6L97xk8tj0aRK7x4kZv1k8dj609Hi/ 7yqbx7fbHh6LX3xg8th8utrj8ya5AJ4oLpuU1JzMstQifbsEroyX+36xF6wVqrhwsIu9gXEJ fxcjJ4eEgInEqaWrWLsYOTjYBJQkju2NAQmLCMhKTP17nqWLkYuDWeAxk8Sj5y8YQRLCAhES Hx9dZQWxWQRUJe5//88CYvMCzVn4cSc7xExNiYZL95gg4oISJ2c+AathFpCXaN46m3kCI9cs JKlZSFILGJlWMYpk5pXlJmbmmOoVZ2dU5mVW6CXn525iBAbxsto/E3cwfrnsfohRgINRiYfX ovBduhBrYllxZe4hRgkOZiUR3rs579OFeFMSK6tSi/Lji0pzUosPMUpzsCiJ83qFpyYICaQn lqRmp6YWpBbBZJk4OKUaGFveRTzfMutlxn7Tb79u+tqwiyzZt9g1K+LpQpvbq3Pduo6fTGKR Pnwrpv6s0oPeuTsuR1SzMwk9fP6xz6n+veEJxauzbK5q7Kldxjp/7zp3MY10yZeq/B9X9b28 vmtdmcg76xPJ/xhfTjwSy2Kva1BoszEjKJh9EVcdA3davry2YXXa/r8/VJVYijMSDbWYi4oT AV0kRJFeAgAA X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: 4F22B1A000B X-Rspamd-Server: rspam05 X-Rspam-User: X-Stat-Signature: q33n8d9ufpeexpr71jtdy35wzgn6459g X-HE-Tag: 1743752794-385721 X-HE-Meta: U2FsdGVkX1/7PvA5Kru8m2ly7k9iq5gErfTNIjCxMgBSt5Oo6GcDRgsvPnxuGT1trciLp9wHjq6fp93ol2O8hNqtf2OQm6FQyUZ0lBTvSA8KkP8ulehsAdPXRtRghKYuHzUcZMFKYqtlOz4aQss26D5YPW+yPnJgNnKMjHUma9IM520uArR3duTIOk/gwIzCtcJnj+O1Zk29IStDdCvD611Je6GL8Ij2n1L7XgS8mup6SjK1YP6Qsw973qOPQsMKDZ3hDrh8iSLnCneXPz108qGd47HTyPtakrSO9gTd0focxqWQXe8nd+9LrTrE/tAVr+aybSqy8Xz9TT+K4CJeCmOPKcFD1itUOtHpKxIoGteoK/YlvkXRDaX1k80E7FANB0wa0W/9QPBlS7FFWBAMBfMeH138/ygwd8CoR0SNRYXhpmcQfF5A6SKEpSid3gEUsbzweG9AJyC4dZUVpWZkiqle3yrX9fCnI2BkF5eSzyQ06keKc4913J6VwksPFBOXoO2sxekJIya28EkIMVYSj0AqPOsa/+OAyumjmiYoBD/Hh3LYj1qvlwstOuPQ8965TyQv7tFw7XN4LfwlJ3q8+zcVdxpx0gRiYCoC+Cp+EbVd4Wxyh8JZ4aY6tWrzi6k3S/aqX4KMMAayVramVENwr3wjoDW4Q3592kMWFnSSHqjTNDPfeiMDBhKggMUTpS57soLqiAYzS8smUydFOuKmZofwaLRj59DEJUFC33sVgvc3dvCY5te66x6GcRoHrtdzxszDeEbPmMMh/I+NY5YfIdQ2y54vyptONiizqIjtpkwu46+cyTPT0mgZzMhpcR+3WA2DqIiq+kclyJVhm/y/+139v+ct20Exptt4mCWqaMiuTHYXkT0FwIGKUCgdRP/1m7Q0SF+R0WjQ+7RWe9wZ96FlCo0SdDZ7Ge12DpCMyskx8VesIB9xBC8Km5qLOIoc1/AL1nhK6blbw3OpmLi bH2GraZV fW8o3Uo99oZr/ec4VFV5Qn8t7sz4379voOOcbBXCucBnDYlw= 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` teardown 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 sysfs entries for unusable nodes and potential misconfigurations. ### Patch Overview 1. [PATCH 1/3] mm/mempolicy: Fix memory leaks in weighted interleave sysfs - Ensures proper cleanup of `kobject` allocations. - Adds `kobject_del()` before `kobject_put()` to clean up sysfs state correctly. - Prevents memory/resource leaks and improves teardown behavior. 2. [PATCH 2/3] mm/mempolicy: Prepare weighted interleave sysfs for memory hotplug - Refactors static sysfs layout into a new `sysfs_wi_group` structure. - Makes per-node sysfs attributes accessible to external modules. - Lays groundwork for future hotplug support by enabling runtime modification. 3. [PATCH 3/3] mm/mempolicy: Support memory hotplug in weighted interleave - Dynamically adds/removes sysfs entries when nodes are online/offline. - Limits sysfs creation to nodes with memory, avoiding unusable node entries. - Hooks into memory hotplug notifier for runtime updates. These patches have been tested under CXL-based memory configurations, including hotplug scenarios, to ensure proper behavior and stability. mm/mempolicy.c | 194 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 126 insertions(+), 68 deletions(-) base-commit: 38fec10eb60d687e30c8c6b5420d86e8149f7557