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 5EF28C47422 for ; Wed, 17 Jan 2024 17:46:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BAEF56B0078; Wed, 17 Jan 2024 12:46:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B5DD76B0081; Wed, 17 Jan 2024 12:46:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9FFC66B0082; Wed, 17 Jan 2024 12:46:19 -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 928156B0078 for ; Wed, 17 Jan 2024 12:46:19 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 6ED0840D2F for ; Wed, 17 Jan 2024 17:46:19 +0000 (UTC) X-FDA: 81689532078.04.03A5955 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2065.outbound.protection.outlook.com [40.107.223.65]) by imf25.hostedemail.com (Postfix) with ESMTP id 91DBFA0014 for ; Wed, 17 Jan 2024 17:46:16 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=memverge.com header.s=selector2 header.b=PWTnAMar; dmarc=pass (policy=none) header.from=memverge.com; spf=pass (imf25.hostedemail.com: domain of gregory.price@memverge.com designates 40.107.223.65 as permitted sender) smtp.mailfrom=gregory.price@memverge.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1705513576; 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=JSZZORtYz4RmGXqeJrrchaVb5t8o+R8JsKdCxgpbMGc=; b=npJ7YPtLhcRXKokCbBOhf4AJvA9l3yQoBQwJ7TNqem0y7V7QXvnKcWRdxc0Tp4jEpK2J6Z m/d2JQeot6ibJxYRlhzQjJWoeWCg/O88tdIcqvFHO/yYFPHJXbCxqvxzsTBhu1gLHJIL3k 5HbG2NfrTkY+0U2jazW92Vihx2/NhP0= ARC-Authentication-Results: i=2; imf25.hostedemail.com; dkim=pass header.d=memverge.com header.s=selector2 header.b=PWTnAMar; dmarc=pass (policy=none) header.from=memverge.com; spf=pass (imf25.hostedemail.com: domain of gregory.price@memverge.com designates 40.107.223.65 as permitted sender) smtp.mailfrom=gregory.price@memverge.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1705513576; a=rsa-sha256; cv=pass; b=Dczn6ywZ5PBxsl5uo0F85HckDqeJCkZ0Hj37JJthRDwIqNOCAnFP+teA0v6490wVV5Ahyo 75qbR8R8ypOfAj0xo2TwswwqAILt92fw6kg0JW79j4Ozu+qMpUEQWXW/sTGodj7lPL9L+k niDC88XgchicL/G+e9axPAt+jHpvxqc= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FEgqqTv9v5Q6PpUcJqJKGUKffS+aIAfR4eWRh3IY2U/zNwFtyyBeV3AYRcG9MS4jvu1ECktEPufPnvmU9t1/J9LXhgoaiQJchfrUK3yBtFjHVnE8gSoto8Jmt1oCiqOrEAycR+m7YwAPmSR5HCZJ97mh2CW7UIrNO2ak2fu/KdaDNbA9AngFGU60OOS8QjYIPVCOWclLcw74cVxZAuHdyHpTsSWz+sr8yTCeVOy+TTNLTkEy8YJdkyTtQf+lacJXu/xCDhwkhouO2cLjfYACrC9nfNGipc68EzK6jfl/iDFREFa33SeSQ+Vc/BMK5L2Ltf0m3TBQgWdorkzhfA3qhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=JSZZORtYz4RmGXqeJrrchaVb5t8o+R8JsKdCxgpbMGc=; b=RXloIi53fpLOlSLCwxDzB17DCNrJKpz7aY/LAl/OBjrPyP1u36LbOhUYLu3UTJ6dqHIZnpqjlqmATmV1d2tp8ClAk+AKSkx+M5AyYSQwTdMzxT3cS1SL9AMB0Zt8HtiTdlYs79MG71+C0kvrRNI0WErALbYXpvbQGjnTcQGAnUcT4AUlAF2X6sBfoVjBmVBWC7lS6VNXty4zrl1eUVrE8Ua03XhZ8VsllhLr416wj45utCTjOiusCCNIt0YYwghw9ACk02bnzHfJdGHNfbxZjHFN/ukvDR82vS6cMiJPl5b+2iaOgGdYsOEL6tp8QAQj/3521vnc61cm4kG9JOqCQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=memverge.com; dmarc=pass action=none header.from=memverge.com; dkim=pass header.d=memverge.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=memverge.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JSZZORtYz4RmGXqeJrrchaVb5t8o+R8JsKdCxgpbMGc=; b=PWTnAMarKuMXB4qWQaT1H6cnaeCV8kqFXq7ctM0jKoyGwF3V1yfEd/LnLM+gY2p732VNXgfSvx3tPkMYLIsYz0sMwPSD9ZnbS2AM18nSIvMHXO5GJo0jF+WyOU86tVDVqLRM+NMJh18mA2FryeLSFTmeawD4r1ZEApZOH7WNUQU= Received: from MW4PR17MB5515.namprd17.prod.outlook.com (2603:10b6:303:126::5) by DS0PR17MB6890.namprd17.prod.outlook.com (2603:10b6:8:12b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.19; Wed, 17 Jan 2024 17:46:13 +0000 Received: from MW4PR17MB5515.namprd17.prod.outlook.com ([fe80::f5ca:336b:991c:167b]) by MW4PR17MB5515.namprd17.prod.outlook.com ([fe80::f5ca:336b:991c:167b%4]) with mapi id 15.20.7181.029; Wed, 17 Jan 2024 17:46:13 +0000 Date: Wed, 17 Jan 2024 12:46:03 -0500 From: Gregory Price To: "Huang, Ying" Cc: Gregory Price , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, corbet@lwn.net, akpm@linux-foundation.org, honggyu.kim@sk.com, rakie.kim@sk.com, hyeongtak.ji@sk.com, mhocko@kernel.org, vtavarespetr@micron.com, jgroves@micron.com, ravis.opensrc@micron.com, sthanneeru@micron.com, emirakhur@micron.com, Hasan.Maruf@amd.com, seungjun.ha@samsung.com, hannes@cmpxchg.org, dan.j.williams@intel.com Subject: Re: [PATCH 1/3] mm/mempolicy: implement the sysfs-based weighted_interleave interface Message-ID: References: <20240112210834.8035-1-gregory.price@memverge.com> <20240112210834.8035-2-gregory.price@memverge.com> <87le8r1dzr.fsf@yhuang6-desk2.ccr.corp.intel.com> <87o7dkzbsv.fsf@yhuang6-desk2.ccr.corp.intel.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87o7dkzbsv.fsf@yhuang6-desk2.ccr.corp.intel.com> X-ClientProxiedBy: SJ0PR03CA0112.namprd03.prod.outlook.com (2603:10b6:a03:333::27) To MW4PR17MB5515.namprd17.prod.outlook.com (2603:10b6:303:126::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW4PR17MB5515:EE_|DS0PR17MB6890:EE_ X-MS-Office365-Filtering-Correlation-Id: 0fd1f319-69f4-4600-b5ec-08dc17843250 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: N5zpcdKnO1oJJFMUuqBr9/fQfyAvarPM/FZkflc82TEGzDdWCKvI3a5YCJKMG+StDybWo26sFO/UE2JsU7UKljy7hs3PH88E1o7EUhFVu10/ofR+mdFmfKzJfDmQ05kIO+zd6/lHjm4PcT3/9nTeAWHvOxGKzvzdspIjEhGDws3JO5o0jUB+L5OLbHjKpLal3KuvgyKU8bXDCBkre4YmGatm1VVj76mdVTrqz9HnNtK/z/uYg+to5cQfr67hoH1rXecn1+Xp2OG1eOYtbicTNt/5i6252MWtJz6HgwV36WsY+dxPudUlyulRv+J01FaFmf/qPZN3gGZyZHpuWTKcLuS1Un4mi9z3kHzrsZ+2YTKBzS0jX5danlRJtYjrvAH00CvUhej+H4vC6+BBtTHlvc+xoikIVprUXNnRFXQCyV97VkNcK/k/f/Ea0oLarPtwiD+nUZwGef9ajZlvJ+yhM+E6CwO/Lf4ueKoLfmz+rQPN4teT3cTyL3jHhSgWgKGJJfHJELT6dGgIcKKB86+qsLZ00FuyL1/bAoU2ULnK+38Z1zcAxDE7wetGxsPTIY0FK/jJU7COfDuZi1rfDUvNImhV9lRHhdCwZju/MmIZW/1Yk2UbnoRdxiTY92PGhUkX X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR17MB5515.namprd17.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(366004)(396003)(346002)(39850400004)(376002)(230922051799003)(186009)(1800799012)(64100799003)(451199024)(2616005)(26005)(6666004)(6506007)(6512007)(2906002)(83380400001)(7416002)(8676002)(478600001)(66556008)(5660300002)(6486002)(66946007)(4326008)(6916009)(66476007)(8936002)(44832011)(41300700001)(316002)(38100700002)(36756003)(86362001)(16393002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j0cmSXBYdpFL0l1eBzxGyr1XropQu3o1m44KoyQCRKxJhXCqEERpBz2Lf2zF?= =?us-ascii?Q?zzVobL/l8p+O5J6UZurGDDfQx2bWdnofF1ZYn+InMCMjJaWkiAmAItzhk7OD?= =?us-ascii?Q?6CI0CsdsOAyXJz30MI/xJCAPg903LfBOGcL/Kvu+vhQvGQjekAHdwZg+cKr8?= =?us-ascii?Q?lQMrsXv/STxlU8Sz6Zd8KAKFfQIYGNwi6G6WKl2cDXzI7ZXJX8QfKrhGHFjZ?= =?us-ascii?Q?ore/+K0cQjNHXJeQIexb9jFuAWQplAgwgHS4+59hwQvRkzUaFfKlLEvSc9yf?= =?us-ascii?Q?7wVVj0jFMfyxn16FBx5KuxXdvv+g7Ip+ENkx5H3YP6FKqVULz4qA0eK2LacA?= =?us-ascii?Q?NuAugLI18u1b3tkZ22nWb8Qt1PdrdEkXt10FW+uzBB28IfAMSXlP68gZIzHA?= =?us-ascii?Q?y3bZ71kaM3wk51l8VX6k49KLUwgCM49eliuYI+GslvDAs/RoAhWakPcseLHM?= =?us-ascii?Q?kLTWDFqvb6dc3KQW56f3HbWTy3OYA3PWXszj/RsDvgYbXiONXWHKckQyUwAA?= =?us-ascii?Q?tdS/puKeYrKwdHAvsrKI53+djsAwxkho4Q9iFwnAJmLwxJ5hkUgr+5Q5U/j9?= =?us-ascii?Q?bwp1Yoqip25KWNjoIuGqVlyJ+uq4NhrxZRdidfdOXan6Tt9HiMCDc/Q7Zfbo?= =?us-ascii?Q?X/JELV7OFLSXNPkuuzmjTW019pTngEAtm+HT7ZBOfOBkxqKpSavYP3tkniOL?= =?us-ascii?Q?87EIJLrP94nleV7IjVaNVGmoyxRO+n07ezwujft0ZQLCaOikNDuQkw1lqVPm?= =?us-ascii?Q?x+DYcDoAwfdnGSt1pS+8LvjpMIIgPteDgC7a07e4wpRzFkNBK+Jo1KjbsgJe?= =?us-ascii?Q?+SUC4641n1CTj2BiVX+kWfrCu/T9iJ84Qd+8rKEcPCe/SdzCa4N2miWzyh54?= =?us-ascii?Q?YvduN7/CM+37alsEV4UHHuLx5/FA8wscBvaLSVq7q5WCdsq9PolUGKCINWzN?= =?us-ascii?Q?UWX05t3Vl/gdjeSc1SrhDxAD1d+9qcvN0w01IDFcXXrJpjZvuWz3sG4LU3vB?= =?us-ascii?Q?CyP0TVr8ELGmdkyrAfi033LJFq0ItmxFpnDKqy9XHroRkSlDPf7tO3wozAVU?= =?us-ascii?Q?6KM4/cwT18r4uW+9Ox0cyp2Z+RvVrrUJ/GM7BlXrWCJHaqdpPmtzOKFgEVQh?= =?us-ascii?Q?v1KxkaCE7eLjfMQJw8l+8zggVIUfr0BFcsHdogyKIRJeWOdcV45oJfuZiiGT?= =?us-ascii?Q?4NPu15zS3jlrTquQGg3q90tlDFsQoLDwPzRfOx4zlqzAoOTrP7tkVbQJ2meL?= =?us-ascii?Q?o9KCXqpetQxOHFpt93JJ09j3yLB/RlDDAWBnXDDEFCX9JUCerzzvfu04YQ1S?= =?us-ascii?Q?v5MfQfpC+oX0zecm+R7mu1FD2dLp0te/DZpOCw6xcOL/LI45/5l0FJghoLIq?= =?us-ascii?Q?Umoh5wkXV1+YgcJST2g0yqH7MaYkEqe+j6B99hqrjxiKtos4CPFIxCPZUCwj?= =?us-ascii?Q?XvMqjUmoS8qDqjjUL0FM7r2m00mOB7TB9H4selbHq87x2/LIA1wRZdcLFBI3?= =?us-ascii?Q?TZ9nLovvauyB8th8l+/vVJZpGXtEHFj/vXla7CT1oGvqWz/PRckyi1wuUFY1?= =?us-ascii?Q?E6vTcPKlxoxN0+ccLj/wYv+Rcdu1ek09qvnF0ldEoFAMot0I4kehWOXKzBLf?= =?us-ascii?Q?ug=3D=3D?= X-OriginatorOrg: memverge.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0fd1f319-69f4-4600-b5ec-08dc17843250 X-MS-Exchange-CrossTenant-AuthSource: MW4PR17MB5515.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2024 17:46:12.9083 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5c90cb59-37e7-4c81-9c07-00473d5fb682 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U91Xgsj2DB2IO3ZT8ALfEpxRlsvOjNkJGn90KIv2hVqcX8henYzCaeSLpTTZT9q9exnXNWejLbtb3wppMHAmYVF4Y3M7hIjO9CiW01VpTFc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR17MB6890 X-Rspamd-Queue-Id: 91DBFA0014 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: scxom1j9z7i3affkszsy3yf5rgsip4ye X-HE-Tag: 1705513576-278741 X-HE-Meta: U2FsdGVkX19EV9KOKweIsnXMEK4hOsxXoN1cSSkkv7DDvYzvlL/gDW4u9P+RpNGH4EI+Ek49PDTJiviVTyT/OUVml8f7adFn7qVBSXmbHwZGNcxpt6qUI8rwHCjlgluf+fYjlXo/jQuAy/bHu2CXlWq1vHg7AJkE3lQStY9TO7RXqSS+swf9kV73qdupQdYpaau7mXLRhJienIcmEpoyhwjSBQ3FErUt6hYXndU32icyK9ekUb1K20ZYsa2Y0lfQkgAUDhY+EubM9Kn07j3qFWGa6Y9TtVPs6HKwMXq/p1oP642IK322hCJx7U6S9MBhlc7QUftaeGrIpwy7FZot9hcGZUjyIiO6xaxtBhZXE/GEe5YP+PmxrBEwli4IqBKb0RuO8ncfVKBem4tfCPG+AGL7CO1cDrnJgN4PkuJfw0J/iY1ls1JaZ4zd3msS5MIMCcVvDGfy3mXDvEVvMjCNbkmfdZ8X0fiGP7IaTvIdqKANWVK+l8wlL0Nd8R51ZfcQ/6m2kfW1LAP5f90fWvm0ZfSix5JlsYkMXRPOPulcZfpOHVJYW001TPVogbiC0FMLfCGGyod1rPGBgbrbiqY1vG8wSeiw8MmCuIApzYUSihbtgB8p6B6z2e7cFWyGJzq6y6KU64i731gnGCjZX50uFHCKpAw/fgUnvGIjn2pJeay0sGJMKtjJG/BeNE4egzN7QyJ/0ybMPPuq+es852FS/XYzA8XG7O4F/xYsLnjFS8BW/Kl1tXZerqPzppVy594ISkdUhOtfnrJ2223EwQzkh/0hKFDFEH9B237z3tFrKX7ixz0GU/WdQgJ6oXNjkCUU7yHr3FnhNxsHI3tgBVS0ev3XyXVHOXCW0pv1m0pMaF9kqvfz1tJA1vTCBCzVL1MGZqdUQUXDLj3y5j71CK9kSK2qNsPC6Sb1N0X//DbH4Sp5EkZ2Qdh4m+tXgIu2D5sWtWe1CH6GVRVslnlDqaT a5lD0oeO kRKo18rBJZmvvZNsZB6JyTAKhBbC/HCRrEjs7jPbybqIuLDWcqyRD6bjFAU8CySL5DTiqhskw1r4InG9XDxj9FcmJZlLdhFzuH5+jo4/iStZkVZ3UjsbqevR7N04aGt/oon+H2u0XXzF9KfyOjQ14/32GKmxtFU2mEyfos6p+T2OUgNbXimcN2Z6GTZU3G1v5AGXHn7h1Mt6sUIkGB3YNkMS0hUaliolw+kkusjW0FQSPtYq0lVP6mfkseQab6PWAEWXP2s8JtJo33QepwumT4kCrHN2p4bwi3jUril03yaCUZ4W5IoB6Ae344HqcIvHGeE6AlpiXanFXOjTr4aMoIBKAAxGXBaljCVb/4DYXTxgWwN6vrLOSPoQWJWKNzBGxttPnAMOLlzUsqFk= 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: On Wed, Jan 17, 2024 at 02:58:08PM +0800, Huang, Ying wrote: > Gregory Price writes: > > > We haven't had the discussion on how/when this should happen yet, > > though, and there's some research to be done. (i.e. when should DRAM > > weights be set? should the entire table be reweighted on hotplug? etc) > > Before that, I'm OK to remove default_iw_table and use hard coded "1" as > default weight for now. > Can't quite do that. default_iw_table is a static structure because we need a reliable default structure not subject to module initialization failure. Otherwise we can end up in a situation where iw_table is NULL during some allocation path if the sysfs structure fails to setup fully. There's no good reason to fail allocations just because sysfs failed to initialization for some reason. I'll leave default_iw_table with a size of MAX_NUMNODES for now (nr_node_ids is set up at runtime per your reference to `setup_nr_node_ids` below, so we can't use it for this). > > > >> u8 __rcu *iw_table; > >> > >> Then, we only need to allocate nr_node_ids elements now. > >> > > > > We need nr_possible_nodes to handle hotplug correctly. > > nr_node_ids >= num_possible_nodes(). It's larger than any possible node > ID. > nr_node_ids gets setup at runtime, while the default_iw_table needs to be a static structure (see above). I can make default_iw_table MAX_NUMNODES and subsequent allocations of iw_table be nr_node_ids, but that makes iw_table a different size at any given time. This *will* break if "true hotplug" ever shows up and possible_nodes != MAX_NUMNODES. But I can write it up if it's a sticking point for you. Ultimately we're squabbling over, at most, about ~3kb of memory, just keep that in mind. (I guess if you spawn 3000 threads and each tries a concurrent write to sysfs/node1, you'd eat 3MB view briefly, but that is a truly degenerate case and I can think of more denegerate things). > > When "true node hotplug" becomes reality, we can make nr_node_ids == > MAX_NUMNODES. So, it's safe to use it. Please take a look at > setup_nr_node_ids(). > ~Gregory