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 913D8C36017 for ; Wed, 2 Apr 2025 16:34:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3B6C5280007; Wed, 2 Apr 2025 12:34:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 33F12280006; Wed, 2 Apr 2025 12:34:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 14468280007; Wed, 2 Apr 2025 12:34:06 -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 DDE49280006 for ; Wed, 2 Apr 2025 12:34:05 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 2F5A8C01EC for ; Wed, 2 Apr 2025 16:34:06 +0000 (UTC) X-FDA: 83289650892.03.5DDA56D Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.20]) by imf27.hostedemail.com (Postfix) with ESMTP id 250B240009 for ; Wed, 2 Apr 2025 16:34:01 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZHWd6+PF; spf=pass (imf27.hostedemail.com: domain of dan.j.williams@intel.com designates 198.175.65.20 as permitted sender) smtp.mailfrom=dan.j.williams@intel.com; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743611643; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ZdU5XzzQTY0veu1RKK1iBE/FF3p99916C4szTFm5F4w=; b=EIlo3euJUJJlQHFFZTK04l/m/OTXkpB2pZa8TLNNc7SWhiBr0CkMv/0t0jVY+TSIlIGrX0 jgrsxFUD6lTmlRbgq6YDHfABioMGEWe4ree3FNVUZzhkGgrxZMTtLYzptdY59qs8zOTi9X n3RW0kh2zmPX1NArw5FNmTuIppEoMf8= ARC-Authentication-Results: i=2; imf27.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=ZHWd6+PF; spf=pass (imf27.hostedemail.com: domain of dan.j.williams@intel.com designates 198.175.65.20 as permitted sender) smtp.mailfrom=dan.j.williams@intel.com; dmarc=pass (policy=none) header.from=intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1743611643; a=rsa-sha256; cv=fail; b=XNvU0r54FIVdOTB/+g4JFTOiZw/gMUyz8ZAdVxPJB1OgTIir7esjbgJYWArbjX9e39cpNc qXcgHDmcwfSEMpyWoyrH8KjJmXGntTCbv4PMmpWu6Kw0OOVrCymSFHrJ1AmkWMJ0E06rb9 bJj1lQ/GjZaDIgHRCLOba9RbrJV5J4I= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1743611643; x=1775147643; h=date:from:to:cc:subject:message-id:references: in-reply-to:mime-version; bh=ckFgYRmOxYmDsOCqbzlBsiNsEwAiDU6HwReIs5B/+ZA=; b=ZHWd6+PFq3buAcEKKxoScdKXI3CD204mmGIrnHVvnG3wSB86E0EHLQDF 7QTYLv6tsOWUVS80WlIpnGi42WzGqCU8W9RawAABBF5Cst0LE4C1O4GKM H+9G/QbEaa8f0X/3sUsj47SYMkrJb+RsNe/RYh2ElRAOumd1SMWZwMpax 9QV6zakMkhcrUTLg7RWKB6lmUWq54qf+94V7mKDywmedTtc4YIAeQf10r Bik0VnFSc/ZoKxrVi8hO3PcYIJabaYug3jhRXKxIjYebnn/ybuDr3M9DJ O2DBkA24Yu4GmhQAT7LEk4LyPr6SMlJTbtVXrd90uTXdXDOiZCrhTvCD8 A==; X-CSE-ConnectionGUID: F8yQKT74R1mugQBF/xe7ag== X-CSE-MsgGUID: hTT+wvwSQkOb0pzXZDhV/w== X-IronPort-AV: E=McAfee;i="6700,10204,11392"; a="44697663" X-IronPort-AV: E=Sophos;i="6.15,182,1739865600"; d="scan'208";a="44697663" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by orvoesa112.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Apr 2025 09:34:01 -0700 X-CSE-ConnectionGUID: FsE3qWOkR+eKoMQcmUDSyA== X-CSE-MsgGUID: nXA6I0KjS3O47s2dLiD32w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,182,1739865600"; d="scan'208";a="130875791" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmviesa003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 02 Apr 2025 09:34:00 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44; Wed, 2 Apr 2025 09:33:59 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14 via Frontend Transport; Wed, 2 Apr 2025 09:33:59 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.172) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Wed, 2 Apr 2025 09:33:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QbW0LItj5abGde+1mEJnDK37jh9jerTDZeycHLPSzHmwq4A4nZcGpbBtaR9Tl9UsbGuAh86V3Mvi2Jvljt0qwpcLjoW+OCOEf1rTMFyd4Ea4tQylYgzy4EHZ2mreySK8qgZAsDMInNRr9X06eXPaD+4Pp2/BwZzErd3w6XJkHj23kgdQsE3SEJSmoEzd8eSaQnr2xGyk8NNy3b+cYVDM46vNePUhezMU+CSCI5pxNtV3siGHAAM05DHEqax77HzPhq0c2HTiUXZapEqi5rwlNFqluRmzKBEXws5MtBU8Naf3k9r1jHzM2wP1BIkb8JyL4ln7z4DjGKML63E0WGZ44Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZdU5XzzQTY0veu1RKK1iBE/FF3p99916C4szTFm5F4w=; b=ora8R/kKDRdtkO8x8XeFuNiE2tYXDjw8MMXMf3XvFRpHRnBJDkFiBAJmZz5FbcZa3plh1BY2rm+fdrpgzMEK8iAgAK1YplwgRs1Jc+bmWBtdkSqeJgKgRedTgA79Dc6XWJhhdywAfoYGUPwkEuowcnp+fDvBMCScMHJtLhnIRfBz/rT7zeB0+VGji02oc0nWuWQRaboaQMsX2GbaAMAyx8Tc9RtcYr1UOkavgy4OUCT8s/jBwJ+bupfYM+YI2aR8/bVte26l13AAvW3eSqENVzz/fenNAM7ndidVfPUZu5pRm7S9NAih79m3Cf/QLCRQniJaFE0XTQb2RIZkproE6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SA3PR11MB8118.namprd11.prod.outlook.com (2603:10b6:806:2f1::13) by CH3PR11MB8773.namprd11.prod.outlook.com (2603:10b6:610:1cb::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8583.41; Wed, 2 Apr 2025 16:33:56 +0000 Received: from SA3PR11MB8118.namprd11.prod.outlook.com ([fe80::c4e2:f07:bdaa:21ec]) by SA3PR11MB8118.namprd11.prod.outlook.com ([fe80::c4e2:f07:bdaa:21ec%5]) with mapi id 15.20.8534.043; Wed, 2 Apr 2025 16:33:56 +0000 Date: Wed, 2 Apr 2025 09:33:51 -0700 From: Dan Williams To: Rakie Kim , CC: , , , , , , , , , , , , Subject: Re: [PATCH v3 2/3] mm/mempolicy: Support dynamic sysfs updates for weighted interleave Message-ID: <67ed66ef7c070_9dac294e0@dwillia2-xfh.jf.intel.com.notmuch> References: <20250320041749.881-1-rakie.kim@sk.com> <20250320041749.881-3-rakie.kim@sk.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20250320041749.881-3-rakie.kim@sk.com> X-ClientProxiedBy: MW4PR04CA0250.namprd04.prod.outlook.com (2603:10b6:303:88::15) To SA3PR11MB8118.namprd11.prod.outlook.com (2603:10b6:806:2f1::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA3PR11MB8118:EE_|CH3PR11MB8773:EE_ X-MS-Office365-Filtering-Correlation-Id: ff1c9f8e-4532-41f2-64f5-08dd7204299d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?M6wjEwdRE+w6Rec6sVs0wNg/KRR7fhKRwoIBij8XrEyI2drYZ+uL1qKk2lm0?= =?us-ascii?Q?s3NgSAU+fgp1H/STW5/Dnsv8kReIkcClbNbVhzrWMhyNmwWZK87xBGkltIFZ?= =?us-ascii?Q?Hp8mGP44pnLthsN0fAGQFlIASLp1E+b8mqkrgFytnzpNnRJVVWGiR80ZgAZ6?= =?us-ascii?Q?6lnrCRDbQWqw3aVTyx6eNQn5k+qwTQ1T2deL6yiTf77tKIye7b548iLPyn9Y?= =?us-ascii?Q?N78j/Ow2Qy1csNxrr2qSd9TGN8w/P2QLPl3+BIgEhJYYDw7ec7PFTtxf4I+z?= =?us-ascii?Q?u5Ejo/BDhqwf7eKa0m2ERlqTI1dOxunPvGBIJ0ERgRRUMrXqoEelbldhI3Vi?= =?us-ascii?Q?7i1+8URmaCI3hvuMAQWFWfX1nlm9aHgUw6WVwk+mmPmoCReSfYeQ5SLfLmv5?= =?us-ascii?Q?U6wOqOv1eqg2+UWaxp0aOyygZjMbxGYnjXjdUpc6mOOXvsFXewMxkj81VQPA?= =?us-ascii?Q?ZWQ/qGV8IBwpGVn3ZO0wGTG0YHPxRHzPqy9Lsdv8PbBEsiHgZNhbb7QeXAFE?= =?us-ascii?Q?2ymiAlymLrKkFkVPd0zeZGt0JzZeLrBIGF6wL0rb3Kw+ZpzP+3U3mUVYoSUg?= =?us-ascii?Q?WhxDvxkLKrhEEAmr462a7yPXRXwXaZdsItueiH7UwtCFHtPfch9+Uj0W6bxi?= =?us-ascii?Q?F+tn+cOb8afIs8y/o7E4mMV9bM9aWJ4uReGz09CnxiNjDLEQxaKyizNdEmDw?= =?us-ascii?Q?P0JWb6225YOZOQ4Phug7ur7vQT6e5jzNhlRFGF8x8sA/1gtPVhb0JkJ70xF0?= =?us-ascii?Q?YEyh38jh1V16q4fFbUeo3OBcrLyK5zVuhGJ2jMELpwBS3Yc6O3MllFScqWY5?= =?us-ascii?Q?ZqPPxLHjLMx4f98l2t9QdRm9enSObn+eC2SU3/t3usWGdCd5NUheXcVAQ+yt?= =?us-ascii?Q?4C6lsS1C6k2eI2XyWtgXuHpjV70kdopiMbv4auIUvHDYoZtiVICibzuJjAXZ?= =?us-ascii?Q?lAnAG4sSVv1ZFID5laYyvOG/pAf9sRGtPZ+DSrdwwjp9HZ48IkB5lOVZoHjw?= =?us-ascii?Q?a5qss9z6WuhE/6jt9FRNzd5Kss6aV7p30Bmq8nehy33P3BcT418dYnj1qL8e?= =?us-ascii?Q?cmHgn4vYH7yfIS/jd40vqz59t2aCR/KAtF+NhG6cM4k40mNIDVU4gvbin7gj?= =?us-ascii?Q?A91YU6VVi7u4g5n7F+CsABjxmi0s8IEHzbJOJYaIGG5HSIbvZ3BR/iBRmMx7?= =?us-ascii?Q?i6X9HYxy4nPaACVp/2OClI5qtqS4kxXs7GK9uYJA/AUrEN0LEIJ7YKnzCREt?= =?us-ascii?Q?5HsZj8AX2Ii43IbBojwbS+mYDd2mVHyY2ovL0mcBupoWqPWhax9rQGhAbOXL?= =?us-ascii?Q?i3A2uECiFQHXUzAsfeZSLMILKH3ER25C7YTQIAqz6ye/nYAbbG0EJ57cFis5?= =?us-ascii?Q?CB+9AdM45EONmwB8WgWj39G77gjQ?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA3PR11MB8118.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ny4YooCn3846Yg2cYpm717cVZS7M+zb77hhZF7cK3rTxJcxreNyZvHhgSoQG?= =?us-ascii?Q?xAdDTKdyjRjJHyoaIy6qPXRw829WW4hG/dKsAGBkdHMZM2hEaGxVvPavo9AD?= =?us-ascii?Q?9sH2mxRmPXEEAyWthorgAyQsXeEsk76CNb4OGnJWU+gmGq9Czm5I6eXJ0CY5?= =?us-ascii?Q?qWchR1Q5wkZSucd5S+0MKVdO/LdKyrMNpzB/fs5JKzeA+uLEdSdcW+9kiBau?= =?us-ascii?Q?Dy4JJ/W8BRzjZUScgFc+s0xP/PPpaCGp9qXI9315B8WX04+bySaYO7slbHJL?= =?us-ascii?Q?OocAga3XGZyzEITS5DTTet/1eAarR76cTcFf4+/XtdQG0KYjllBZb9KdQ4hb?= =?us-ascii?Q?Et17/FrlUelqJBUopgV9RkGMPlIBRpRX5DulIbP+lKZjzRHxbHe86I00jOQS?= =?us-ascii?Q?O8f6Fm80XgRf2R70KfSUsbk4RqlCZ/qIv6Z+mNQ0iRzisXTSz9r03fnXGG3T?= =?us-ascii?Q?pvyzLHWeDWQET/vW5SFo/GaJ7suSkbsv3lZbTkGxXx8x3fl4Pxq9RScfaKzw?= =?us-ascii?Q?ewPPC6tBpoKswefIRHdSQC7+VZLbKdjWgk97X5gHmtTGBM4jDufe+WWr3HzM?= =?us-ascii?Q?D6GFiGdDSCJRZlNFDL1lUHP2/EcgwqPjXTR9NxMB6i8TT7MfutGxUauOtyIS?= =?us-ascii?Q?JvKrZz9dF0AADtwsRxYaSUmWc/kEJ5GBol+j1/7UYxJl1g6ALVo96Z2eHbQd?= =?us-ascii?Q?QaDYyzVwHa26tgtXxBvoLxTQwoshGQBQvna5yUVcliW6fp/dnMDdRME2wKEL?= =?us-ascii?Q?KcyzSXnR2HUFf5IwwNLC3NfmrvwbpxUwfW7OA2RDpNOoclufuzcTpFOlOv2v?= =?us-ascii?Q?0CptG8q2/qSmYT/XdKfzIHLGeLPq/MMMvGS1TNaead7yIdbYp4GehCu2Gso0?= =?us-ascii?Q?f25KYzjRIcu/6Jmh3aZ6t2hRPfb78fhoBP8EmTYbSmABs/J9U6kNoketjwxM?= =?us-ascii?Q?LPDsrcScSyLRf3McL1SREvHxR4Ek/oGzgZBfpK2KGAjovPS+8F6wxr7Hnyt+?= =?us-ascii?Q?44714AvvBeVpxLpIOpc5WO840+K83Q/XgsCUPHZGuGfudv6YZAZhy2frsXkN?= =?us-ascii?Q?HsoTzDd6VpF0xx51ks1URSa4hdVSVU2Mg4Pfzz60MZTBQS0IUD7pfsGz/FSa?= =?us-ascii?Q?27p1r1YuE5POY/L0h53NXMHCUpQKPWtTAkN/ko7ISAt2/Dhq+wqQt5AieZgF?= =?us-ascii?Q?CMWn03k7TPrCpPLMaBv1DyEW1ZTvFsTeTgBG2D9hvEvwR11ivb3iLDFrRUQi?= =?us-ascii?Q?wBXSqXIqCc8sGL6rC/nqD4g7z+Us7JiyzZSkPGx8GjezwPoObV6OA5xd7h78?= =?us-ascii?Q?Gxvh3O7f79v0RtiwwmpwR5qoOKAYoDgaWDdmZVVl8QC45GMpsN3PJlE3d5LK?= =?us-ascii?Q?rFm6fWCvj7N5W//dRar+NRtDk+PitNgLExjFakYIvXr+PzhJ2RwavLbYmumj?= =?us-ascii?Q?NRwAdiBss2Zhaz6+7bM/0a7CktmbHNMOU4qB8y/FTYsKEn4/0gbh6PTwORcW?= =?us-ascii?Q?yMoe3wGfKHe1Shdf6lTX2u3e5g+UsHql930iNFQwqBmyMQzzcJypzYLTut8y?= =?us-ascii?Q?WqmEDOpiKDBThnOqKGClnCLfORvuReLmcLe+OQpAFOGZ01R9MY1LMvhYfPk0?= =?us-ascii?Q?WQ=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: ff1c9f8e-4532-41f2-64f5-08dd7204299d X-MS-Exchange-CrossTenant-AuthSource: SA3PR11MB8118.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2025 16:33:56.2363 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iAX6ObDJGeUZzlVb0GEN0keEFra5DGrs1I7kyTQV4bta2CbAiBeTqvZBJ3o5cDGQgRZ4En/7hHiHKZzufSHNJeKN42LEF4IcnuI8sab39fE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8773 X-OriginatorOrg: intel.com X-Rspamd-Queue-Id: 250B240009 X-Rspamd-Server: rspam05 X-Rspam-User: X-Stat-Signature: f7j9ofc1uxt3ykjbrqhigi1xi5ebio1c X-HE-Tag: 1743611641-255795 X-HE-Meta: U2FsdGVkX1/6kzjNEdeYloQ3JJnhdL9Uvm2ZG7r623lPfqlA/c+ngNwL17WveHATEGBcoTEZ+gEWtI4YJ6cB9c86BhnrawjNUFYzRzWftOyrJ9eWUs0dqw7ZkAXgdXaxZ/xelFyXZXv9zrYLM1BJb/EOYYSjaTHtMTqGSELNGopPbtbIcO6+wKig/PBWAFcj7gc00ZLH2LCc85BEdR0DsG9E4cf/eKy1237pWqfrP0DKEKyGe7uZk+CONIVZOqC/pBclGW/jZph9urUNpewbBodRhXikEf+HShC/DZzxs53IjuqeXtnvLxWskbJhKEPRlVAYFgvVCcuEkYdD640Ajs9IP49YeYsm0ePa2DVr4zTqjm2hGMFQrKrX99ryyySx+f4bb2hd7b8UhOXlQ7NepXt9Zxab5UGl59Vgj1V6hNDCCxPuRS9r/qOMAPiKR51dZ3wAwqVkEK+oMkoevjEAJhkoXUpSjL1M6zS6PVTjEVjHEUe9tFTfjywinmqfTCN8yw51sOIdv5PowU2ZXwBxUWpALF3DTTXAbWXc/gktCRKq9a6AO8BcefqQWA5879OKuPG2neVXDqYDWf90WmxkEkf51FaI8yvXGDECvOGAbtieDt4NMackf/OabMn5QXHYvUDwxbF5Z0BbN/ix1IryMBCt/Qw9nf4/aWAQEw5hXuoI33Whq4XdE5VlYtYodxgZs0D669vIUUwY2dAjVa1gPiRF7VOeQ1N+b7L6ljsdf3ctpWFPS42l/L62bwdw5QQ4j42CSxMIOn5+PtbWci+JPRz/TbyHxQNSRfsEC+sA6F7Vb621dJ4Ei+khWGReaz8r2YBAMkORXqkWBMwzBOn5VQEi1zwChV2uGOhBpjWFoY1WBK0q4RSYwNNevFnk/MlxkqJgHeVRWtxuXGoQpxb1Ky1DQal2wSC0GKCaYs/uYt6ZB7K57ItxPrBJVBPLL1q/sYMO7gE0V8kfvx3hnLJ py8EdQdz AAFvlrY1JQ81i7Skq2NeBOX+LNH9c/hRECVgKcZQHba6RuSDnaPCWARy6307/SDU65pTAFQVnOhOAXAu1bA/iWmlMwTfWcyMpffyk6xm2iFW/vkhoPnW/Zf7eWvJ2JeYGRbRGYr1la5+oXNVlRzPKHi3iyzvJUu87NrkBC9SAqsVfgC/nA+qlDFEkgwJDlkdLN70z9kE6xFcS70pTRQqxlRi1kOXTVrqSVCtkzQcYBN5UnaASOej3Vbkv5cTrXhaqynfsXH/f7MA/5biZW16Wtr8i4IMPjN7vGlM6e1F3P1QejDl0vfMDus2jBJgGxsSR/3xIj+B6nKgMR9Zfnz5M+qr9t6M9P75SXDlie64ZW00FABgjEN/yYkj+DQk3AJAS2eJKDl0/xy7kOnwjBqWwRKVaJw3WcHz652pE4VtxLUnkItxVXJaKHomd2rytHwE6RWNMRzNND0j2DINTkao6fUulSIKcLQulS/taqYcBgAgXm4dXmQqCfuc5GmiJPR1HyfXgQzkLhb+f23RbZyiY0MZN/NutvezkHZy+bmKsw05VeD1zGf+PcXPdRA== 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: Rakie Kim wrote: > Previously, the weighted interleave sysfs structure was statically > managed, preventing dynamic updates when nodes were added or removed. > > This patch restructures the weighted interleave sysfs to support > dynamic insertion and deletion. The sysfs that was part of > the 'weighted_interleave_group' is now globally accessible, > allowing external access to that sysfs. > > With this change, sysfs management for weighted interleave is > more flexible, supporting hotplug events and runtime updates > more effectively. I understand the urge to try to make a general case for a patch, but it is better to state the explicit reason especially when someone is later reading the history and may not realize that this is part of a series. So instead of making claims like "this is more flexible / more effective for runtime updates", state that motivation explicitly. Something like: "In preparation for enabling weighted-interleave sysfs attributes to react to node-online/offline events, introduce sysfs_wi_node_add() and sysfs_wi_node_delete() helpers to dynamically manage the weighted-interleave attributes. A follow-on patch registers a memory-hotplug notifier to use these helpers, for now just refactor the current "publish all possible node" approach to use sysfs_wi_node_{add,delete}()." > > Signed-off-by: Rakie Kim > --- > mm/mempolicy.c | 70 ++++++++++++++++++++++---------------------------- > 1 file changed, 30 insertions(+), 40 deletions(-) > > diff --git a/mm/mempolicy.c b/mm/mempolicy.c > index 5950d5d5b85e..6c8843114afd 100644 > --- a/mm/mempolicy.c > +++ b/mm/mempolicy.c > @@ -3388,6 +3388,13 @@ struct iw_node_attr { > int nid; > }; > > +struct sysfs_wi_group { > + struct kobject wi_kobj; > + struct iw_node_attr *nattrs[]; > +}; > + > +static struct sysfs_wi_group *sgrp; > + > static ssize_t node_show(struct kobject *kobj, struct kobj_attribute *attr, > char *buf) > { > @@ -3430,27 +3437,23 @@ static ssize_t node_store(struct kobject *kobj, struct kobj_attribute *attr, > return count; > } > > -static struct iw_node_attr **node_attrs; > - > -static void sysfs_wi_node_release(struct iw_node_attr *node_attr, > - struct kobject *parent) > +static void sysfs_wi_node_release(int nid) I called this sysfs_wi_node_delete() above because _release() is typically callback invoked on last put of a kobject. > { > - if (!node_attr) > + if (!sgrp->nattrs[nid]) > return; > - sysfs_remove_file(parent, &node_attr->kobj_attr.attr); > - kfree(node_attr->kobj_attr.attr.name); > - kfree(node_attr); > + > + sysfs_remove_file(&sgrp->wi_kobj, &sgrp->nattrs[nid]->kobj_attr.attr); > + kfree(sgrp->nattrs[nid]->kobj_attr.attr.name); > + kfree(sgrp->nattrs[nid]); > } > > static void sysfs_wi_release(struct kobject *wi_kobj) > { > - int i; > - > - for (i = 0; i < nr_node_ids; i++) > - sysfs_wi_node_release(node_attrs[i], wi_kobj); > + int nid; > > - kfree(node_attrs); > - kfree(wi_kobj); > + for (nid = 0; nid < nr_node_ids; nid++) > + sysfs_wi_node_release(nid); > + kfree(sgrp); This looks broken, are you sure that a kobject with a zero reference can still host child attributes? The teardown flow I would expect is: sysfs_remove_file(node_attrs[i], kobject_del(wi_kobj) ...that does final kobject_put()... kfree(container_of(wi_kobj)) However, now I do not think patch1 is actually fixing anything because there is never a kobject_del() of the mempolicy_kobj. Just like there is never a kobject_del() of the mm_kobj. So patch1 seems to potentially be addressing a bug introduced by this dynamic work which is caused by the original code being confused about the kobject shutdown path. The original problems are that sysfs_wi_release() has a kobject_put() which, yes, is broken, but equally problematic is that there is no kobject_del() in sight for either of these kobjects(), even with the new changes. mempolicy_kobj_release() seems to confuse the activities that I would expect to be near a kobject_del() call with the minimal kfree() on final put. > } > > static const struct kobj_type wi_ktype = { > @@ -3458,7 +3461,7 @@ static const struct kobj_type wi_ktype = { > .release = sysfs_wi_release, > }; > > -static int add_weight_node(int nid, struct kobject *wi_kobj) > +static int sysfs_wi_node_add(int nid) > { > struct iw_node_attr *node_attr; > char *name; > @@ -3480,57 +3483,44 @@ static int add_weight_node(int nid, struct kobject *wi_kobj) > node_attr->kobj_attr.store = node_store; > node_attr->nid = nid; > > - if (sysfs_create_file(wi_kobj, &node_attr->kobj_attr.attr)) { > + if (sysfs_create_file(&sgrp->wi_kobj, &node_attr->kobj_attr.attr)) { > kfree(node_attr->kobj_attr.attr.name); > kfree(node_attr); > pr_err("failed to add attribute to weighted_interleave\n"); > return -ENOMEM; > } > > - node_attrs[nid] = node_attr; > + sgrp->nattrs[nid] = node_attr; > return 0; > } > > -static int add_weighted_interleave_group(struct kobject *root_kobj) > +static int add_weighted_interleave_group(struct kobject *mempolicy_kobj) > { > - struct kobject *wi_kobj; > int nid, err; > > - node_attrs = kcalloc(nr_node_ids, sizeof(struct iw_node_attr *), > - GFP_KERNEL); > - if (!node_attrs) > + sgrp = kzalloc(sizeof(struct sysfs_wi_group) + \ > + nr_node_ids * sizeof(struct iw_node_attr *), \ > + GFP_KERNEL); The recommended way to allocate a struct with a flexible array is using the struct_size() helper. kzalloc(struct_size(sgrp, nattrs, nr_node_ids), GFP_KERNEL) ...but overall I think the original code needs a cleanup and to be clear that I think there is no memory leak risk exposed to existing users given the shutdown path is never invoked.