From patchwork Tue Apr 8 07:32:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rakie Kim X-Patchwork-Id: 14042317 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 29081C3600C for ; Tue, 8 Apr 2025 07:33:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C17B76B000D; Tue, 8 Apr 2025 03:33:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BC7606B000E; Tue, 8 Apr 2025 03:33:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A8E376B0012; Tue, 8 Apr 2025 03:33:52 -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 8C8E56B000D for ; Tue, 8 Apr 2025 03:33:52 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id BDA491A06F5 for ; Tue, 8 Apr 2025 07:33:53 +0000 (UTC) X-FDA: 83310062346.21.52373A8 Received: from invmail4.hynix.com (exvmail4.skhynix.com [166.125.252.92]) by imf05.hostedemail.com (Postfix) with ESMTP id 1057B100009 for ; Tue, 8 Apr 2025 07:33:50 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf05.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=1744097631; 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=Sdfb4kqymYEnhrRkj1He1fzI50efPhAhNPJT3v1ydHw=; b=2eKdisI0iuNHRI4ziw4GyiBzgkt5pp+8c88C65obQHjbDe0rLg6LDbkxD/pWGnYV2H/sw0 EZIeyJrBIPNYgyrTFLifv80i08cAwFo/Cr6bON/83bZACvCG6BlTNcBO6lnUOqE3aNsIZ4 hdXDTCT9jKi48ixPqM/YQX8DMaG6IpQ= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf05.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=1744097631; a=rsa-sha256; cv=none; b=7lU6P/wMcictuEpnLKBXkYunh+Z53cb5RPCfaKqxvSGNv2We2LBgZEqSY2GH8coeOqYX/c D69o9z5iKr4bGYazbt7ygCkzQ4Nz7EyXDBldIVluhwzcfVvVIsUmAQM/TB/kQCV5CUWqVY oU+c7EJimGk375C4hEQmGshuyJzwAN0= X-AuditID: a67dfc5b-681ff7000002311f-f0-67f4d15cb46e 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 v7 0/3] Enhance sysfs handling for memory hotplug in weighted interleave Date: Tue, 8 Apr 2025 16:32:39 +0900 Message-ID: <20250408073243.488-1-rakie.kim@sk.com> X-Mailer: git-send-email 2.48.1.windows.1 MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrILMWRmVeSWpSXmKPExsXC9ZZnkW7MxS/pBt/nmlvMWb+GzWL61AuM Fl/X/2K2+Hn3OLvFqoXX2CyOb53HbnF+1ikWi8u75rBZ3Fvzn9XizLQii9VrMhy4PXbOusvu 0d12md2j5chbVo/Fe14yeWz6NInd48SM3yweOx9aerzfd5XNY/Ppao/Pm+QCuKK4bFJSczLL Uov07RK4Mk7/nMVasFaoYtmahSwNjEv4uxg5OSQETCT+bF7DCmPfOLWbpYuRg4NNQEni2N4Y kLCIgKzE1L/ngcJcHMwCj5kkHj1/wQiSEBaIkFh+YQdYL4uAqkTHrPvsIDavgLHEq2t3GCFm ako0XLrHBBEXlDg58wkLiM0sIC/RvHU2M8hQCYH7bBJPZ35kg2iQlDi44gbLBEbeWUh6ZiHp WcDItIpRKDOvLDcxM8dEL6MyL7NCLzk/dxMjMKCX1f6J3sH46ULwIUYBDkYlHl6Po5/ThVgT y4orcw8xSnAwK4nwvp34JV2INyWxsiq1KD++qDQntfgQozQHi5I4r9G38hQhgfTEktTs1NSC 1CKYLBMHp1QDo5JgS+CxrDeaJU1zUt5MOmtz+e2u+2EFG6REktST7r3XYDBU+Gy34WjtS9GO msm8DW+Y+uvdzfgtOmdNSr/4Ji7SXCey7M7Eb3N7RUofMESpsHhYyU666FX98LxAoFUOm1tX a/XmpPgZ32QFato4n7WsqYu9GjY32rnSbmeiK9/GhbtLWRYqsRRnJBpqMRcVJwIAdMaYwmQC AAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrNLMWRmVeSWpSXmKPExsXCNUNNSzfm4pd0g43PNS3mrF/DZjF96gVG i6/rfzFb/Lx7nN3i87PXzBarFl5jszi+dR67xeG5J1ktzs86xWJxedccNot7a/6zWpyZVmRx 6NpzVovVazIsfm9bwebA77Fz1l12j+62y+weLUfesnos3vOSyWPTp0nsHidm/Gbx2PnQ0uP9 vqtsHt9ue3gsfvGByWPz6WqPz5vkAniiuGxSUnMyy1KL9O0SuDJO/5zFWrBWqGLZmoUsDYxL +LsYOTkkBEwkbpzazdLFyMHBJqAkcWxvDEhYREBWYurf80BhLg5mgcdMEo+ev2AESQgLREgs v7CDFcRmEVCV6Jh1nx3E5hUwlnh17Q4jxExNiYZL95gg4oISJ2c+YQGxmQXkJZq3zmaewMg1 C0lqFpLUAkamVYwimXlluYmZOaZ6xdkZlXmZFXrJ+bmbGIFBvKz2z8QdjF8uux9iFOBgVOLh 9Tj6OV2INbGsuDL3EKMEB7OSCO/biV/ShXhTEiurUovy44tKc1KLDzFKc7AoifN6hacmCAmk J5akZqemFqQWwWSZODilGhjPL5y/5dKRbRLJ35pMkjQPb9Rd4Z1/cuZ/Fwcm06cPSwr8ZRd8 eCLMsuzFZrXcOV1THqwuOsKjObnzySa2E2yrsneu7s1evIrfTnpdzFXr/IrrjzUnvQ38+dN3 64qFNh4NXY37NkTI3O/sncsa6r7zjQbnvEOTWp/cS9oks2JmUItwe/iSnapLlFiKMxINtZiL ihMB9C1t6V4CAAA= X-CFilter-Loop: Reflected X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 1057B100009 X-Stat-Signature: 893sd33cp6y87ep1ebkb1wnxtuo96y8u X-HE-Tag: 1744097630-264490 X-HE-Meta: U2FsdGVkX19kmzmVvihaDJOyaR5KzO/CiNVML1pIxxiNh1qtHNGt+KmobjAl4BJULH5wboDbQsg3uDR2DKfOOaPYutL+YdnuMdYJ/Jp2pGRP/0+FW7w6Vg49hInDmVbNWl8WNyr1tgP7VNtYMJYPXQ2JiPl9wtc1UsRbuZ0XlkpnP/ojV/jI/4vtflXeRlLBTnCxQn+96VESxPbmb7OmgpSYcovJPin/qeEUgUQGz2I52BySEFF/DtbGMqTjSZIiLARLU1ruW2cElTnVvfkorSeKNt+zBuF5ApqlGSblkdQzHPRMjjFwTHpPn0W1qRM5MfxxoWe1YnFuiXdSnAPlo5D3w7RCtGdq2H/6Ay+Ju6D9RfjhCCeE4OwBKafnWD95P6aMvB6dskh9+lFjLCL9NQpfg9nf7NqgCPI5XqtnQJ1ZFiWpr0eUs5dpE2855M0tIkhnS8xblxCBEd3Eqs26z9QENruLC8p0bpb9QgZN9O23JZCtrb9+veruGyVdiupdiTXcNDypUdOIlqez4se7Gd9ud/9LTKOuHwWuRMddx2YitBfhxF2npz9F6tBbMVuHZPTUMgI+hEAsHUDSO3pagx6ABiTpFQ7TNDcMmzhuPju0EVtUQlY5oU7NlMWvCiZSu+SXLDiDCA3z0LPduy1x4LAJmATP64ZGYW82F/mYKPIY/UKDRrJI8ie4nW/MgssM8+bTX9AtHUQVy+YQAjpLiF4MRD82eR/bNXZcPVI510XMTcU1UHxjGZe7n7FvJpvvXv2QO2FbX074eKjrcRIoHrA0+gCGJznhAAmZKPfvdD85OPSSWQrrxL76xxfORrVGCxNQOXWn9YUnoSCno0ZvQ3+RDb6yRQS7QChpO1WvYTFCqtbb67NcR21MDt6qRKwDwGuiIKdTLEEbNCr838YTTwkX/HNu2agX0/q6QUTAvnRZBv7q0MiMjUPvTayd5HxiODl82PaJo5RmYX+bVz9 L0LGAxUZ Ef3+FyTDKZPB8q+fIuAWIMqCDCl5vF81a0K84+PhyX8CJAQw= 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 | 193 +++++++++++++++++++++++++++++++------------------ 1 file changed, 124 insertions(+), 69 deletions(-) base-commit: 0af2f6be1b4281385b618cb86ad946eded089ac8