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 41642C2BD09 for ; Wed, 3 Jul 2024 08:53:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 751BC6B0095; Wed, 3 Jul 2024 04:53:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 701C96B0096; Wed, 3 Jul 2024 04:53:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5A2F16B0098; Wed, 3 Jul 2024 04:53:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 3C6886B0095 for ; Wed, 3 Jul 2024 04:53:41 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id CA8DB1C0A71 for ; Wed, 3 Jul 2024 08:53:40 +0000 (UTC) X-FDA: 82297828200.09.DBDE20A Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11]) by imf28.hostedemail.com (Postfix) with ESMTP id 37328C000D for ; Wed, 3 Jul 2024 08:53:37 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=NLJv0pqi; spf=pass (imf28.hostedemail.com: domain of ying.huang@intel.com designates 198.175.65.11 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719996796; 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=QWCDclmW6AURGG3zgl+PTUrcz9g+e7Yluu/lIH0Br2k=; b=2ee4b+EMjileaLDBCK1SR7uDPx71OeT0pKz7w8X/NqRC5p8pp0awYzyzleeJuciDNwDAkh MhFsyoqHi4ZUotmorlckjkUvMnU46AabfI/6WzVTPGyYxx2RUbC/XTe4mJOLUbjXfwVC+h geHU64uFBZhPKfmKgd+Kwf32zLzlquc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719996796; a=rsa-sha256; cv=none; b=EDjA/9dySJ+xk8GkqSm7+1J15GpM4vvPdT0GUUJnhlSXAwi6LbwrcXzqb6nqSrTyGw5ZiD uKq43KfANyGsOwt1S51yobnBTEXSHtGj2Ob8gZCndtpjZ4BL7bxMQORDTqnHbBl4V03n5u 2pLhQGHvCSs82hUkXxAiZYmHIXUHoQQ= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=NLJv0pqi; spf=pass (imf28.hostedemail.com: domain of ying.huang@intel.com designates 198.175.65.11 as permitted sender) smtp.mailfrom=ying.huang@intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1719996818; x=1751532818; h=from:to:cc:subject:in-reply-to:references:date: message-id:mime-version; bh=uJy6npIbvFhICTmqeRyyXfHKUe2Xu5teyWK4mPdnf60=; b=NLJv0pqiukF9ik6uHLbZRJa5CFD8EU3kd/Z1hLE2FzROOEzHUfS5xc0e WX3eQSVtVc/KuWdtUOEHZeut62xO21Fi5et00GNVoBXx/+xWl8rVb8C9f tvmLO8aF08ZzNP4DBIxbL1qxFEMqdPkr62cQ1OtnVDAkOYSqCGvlhnIdD KTF3gLJAKtYmUvslMNjM8idrKg4cOulqzCfF7E29+sknKPa1J29nZ2Yyh ULwu7JRvr9L/buG0Ly5Fi2xpyCAz0SsxLAq4h13AgBdn6VnXx4+uxomBE WPtKjQAfkvQWgs/P3Ova/ef9FF53J+QLLYyHb0Ewcv4LCPfne3GWZEu/N Q==; X-CSE-ConnectionGUID: +V/jmDvkRaykpp0Mfbz0eA== X-CSE-MsgGUID: WW/znBPHRZ+DDsQUnp2WEw== X-IronPort-AV: E=McAfee;i="6700,10204,11121"; a="27818579" X-IronPort-AV: E=Sophos;i="6.09,181,1716274800"; d="scan'208";a="27818579" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jul 2024 01:53:36 -0700 X-CSE-ConnectionGUID: TNLyrCPHR5SOEUdQfrNb3w== X-CSE-MsgGUID: b4l4Pq1yTnWXfVH4a1AjFA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.09,181,1716274800"; d="scan'208";a="50633629" Received: from unknown (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by fmviesa005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jul 2024 01:53:31 -0700 From: "Huang, Ying" To: Jonathan Cameron Cc: "Ho-Ren (Jack) Chuang" , Gregory Price , , , , , Eishan Mirakhur , Vinicius Tavares Petrucci , Ravis OpenSrc , Alistair Popple , Srinivasulu Thanneeru , SeongJae Park , "Rafael J. Wysocki" , "Len Brown" , Andrew Morton , "Dave Jiang" , Dan Williams , , , , "Ho-Ren (Jack) Chuang" , "Ho-Ren (Jack) Chuang" , "Ho-Ren (Jack) Chuang" , , Subject: Re: [PATCH v2 1/1] memory tier: consolidate the initialization of memory tiers In-Reply-To: <20240702142535.00003dc0@Huawei.com> (Jonathan Cameron's message of "Tue, 2 Jul 2024 14:25:35 +0100") References: <20240628060925.303309-1-horen.chuang@linux.dev> <20240628060925.303309-2-horen.chuang@linux.dev> <20240702142535.00003dc0@Huawei.com> Date: Wed, 03 Jul 2024 16:51:40 +0800 Message-ID: <87a5iykgdf.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Rspamd-Queue-Id: 37328C000D X-Stat-Signature: 458c74i8x6k5uftif8k44hm8b1ptwewx X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1719996817-59257 X-HE-Meta: U2FsdGVkX1+bg3DQdNzucmOZ4WipFzKLDS7FzAzCXmlrIrpXqC2E2nIpbN+q//E5dOQafiZU7dRgE8FgGB/4KiKfRr+B5cs0SDuZS7dTbLHhvaqIJ6/DvWKb30E0/1wlBnHROTv6O3D7QPzLRqZ/d0NXFUChSvrIB4zLGk9JDvEFZ5AfdR3GwKNetmoCLx5Ih+TSXPnnHELHkGBSD2X1UeRArcS4FB2/pvVUb/OVJWpcqXAAiKmEt3jQbmlqoceyYoNnB2JodbPGjtQF6IKzhZ+fBwQdZIC/CTv55AvtTctQsBWQAXsnyGU1HePLh8KNn55Q3nw7ScO1XyF9srJ6ymnSKIMWyc/ipcnZLS0dVphFBA459WKr76xB/fkeQ1wlKmIY/8OTYvTdk0lsJsdA9X1k+Sui/3UaA88jqmzc6hKtAEL6/KbyI0ycGtCRDUhyMhQYe/jDarvLNhx5+xNY0acbhmKrsl3EHsZGbjkBZ3mHpk10RSIFElfCtDklswaHdwDQjaJedIkhPBRQCbjN2QLAW7vMl6H2qWYn2xMGqgRG/DdaMsNwnj/OQRb0CyQypnqJIQv6qpU4qz7J9w/pxEb0ClMkA3aKUPG7J9f7+LYSGpvnYU5i+PGENCPUOKnmScvLBlBlEAe+1xnO3u8S0QNUgocnxv5Zm+4VtaXLFHXlyR8f05y7QPDfF1+2yVEmc64IpIQ/c8lIFCBhPLCl4cFCtW6djWbvDQr5QJc5yjs4JC5wppP68xxwx9R7OZxGNKLSx6cGWBj1JXVfnMQRH0UX/C2biVLCMPcqLTZYrfIKIq146tSOz+R9cWsJjBdkpoAHWT3fYFFfXIbpUrkPPcIa/3hWE7DNJ6rE0nE/4PB5pKgw3X9wt5yGsjs/LzxQyoVa1eMwWMVwioXEm0vsmzyFQVzKCeKnUN4u9Uj/Q+2KJg05nJqSr4zqWO3cXH6JldtCqJ+guHJpY/xIsqY TO5Hv4lM 6oiHBaX1ysh3fN+fH+48ynWsN7dOeEXLTkVJlX/HeYKZiGWQxZoVcaprnDBTQ/u84QyiW+pXIRssHcU24gTiqZ4fhxVmlrLzTDAIZ6jjYPfliQVz/idqMCbaNyiG5BArd07aDRKAYU5kL+p+Xgbk56qAzPY/srbwgFL08JwinGQeLvXJSRzit19CrWHhLRx+UP7Vg2CZOUMaRfLt666dL9aqivEha4SGuQckzPiIliKCczBA= 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: Jonathan Cameron writes: > On Fri, 28 Jun 2024 06:09:23 +0000 > "Ho-Ren (Jack) Chuang" wrote: [snip] >> @@ -875,8 +886,7 @@ static int __meminit memtier_hotplug_callback(struct notifier_block *self, >> >> static int __init memory_tier_init(void) >> { >> - int ret, node; >> - struct memory_tier *memtier; >> + int ret; >> >> ret = subsys_virtual_register(&memory_tier_subsys, NULL); >> if (ret) >> @@ -887,7 +897,8 @@ static int __init memory_tier_init(void) >> GFP_KERNEL); >> WARN_ON(!node_demotion); >> #endif >> - mutex_lock(&memory_tier_lock); >> + >> + guard(mutex)(&memory_tier_lock); > > If this was safe to do without the rest of the change (I think so) > then better to pull that out as a trivial precursor so less noise > in here. > >> /* >> * For now we can have 4 faster memory tiers with smaller adistance >> * than default DRAM tier. >> @@ -897,29 +908,9 @@ static int __init memory_tier_init(void) >> if (IS_ERR(default_dram_type)) >> panic("%s() failed to allocate default DRAM tier\n", __func__); >> >> - /* >> - * Look at all the existing N_MEMORY nodes and add them to >> - * default memory tier or to a tier if we already have memory >> - * types assigned. >> - */ >> - for_each_node_state(node, N_MEMORY) { >> - if (!node_state(node, N_CPU)) >> - /* >> - * Defer memory tier initialization on >> - * CPUless numa nodes. These will be initialized >> - * after firmware and devices are initialized. >> - */ >> - continue; >> - >> - memtier = set_node_memory_tier(node); >> - if (IS_ERR(memtier)) >> - /* >> - * Continue with memtiers we are able to setup >> - */ >> - break; >> - } >> - establish_demotion_targets(); >> - mutex_unlock(&memory_tier_lock); >> + /* Record nodes with memory and CPU to set default DRAM performance. */ >> + nodes_and(default_dram_nodes, node_states[N_MEMORY], >> + node_states[N_CPU]); > > There are systems where (for various esoteric reasons, such as describing an > association with some other memory that isn't DRAM where the granularity > doesn't match) the CPU nodes contain no DRAM but rather it's one node away. > Handling that can be a job for another day though. > > Why does this need to be computed here? Why not do it in > hmat_set_default_dram_perf? Doesn't seem to be used anywhere else. IMO, which node is default dram node is a general concept instead of HMAT specific. So, I think that it's better to decide that in the general code (memory-tiers.c). >> >> hotplug_memory_notifier(memtier_hotplug_callback, MEMTIER_HOTPLUG_PRI); >> return 0; -- Best Regards, Huang, Ying