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 BDAD9C677C4 for ; Mon, 9 Jun 2025 09:22:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 585C66B0092; Mon, 9 Jun 2025 05:22:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5360C6B0093; Mon, 9 Jun 2025 05:22:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 424B86B0095; Mon, 9 Jun 2025 05:22:07 -0400 (EDT) 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 23AA16B0092 for ; Mon, 9 Jun 2025 05:22:07 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CA31EBF232 for ; Mon, 9 Jun 2025 09:22:06 +0000 (UTC) X-FDA: 83535320652.26.58C65F6 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf20.hostedemail.com (Postfix) with ESMTP id A1D8F1C0009 for ; Mon, 9 Jun 2025 09:22:04 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=voDCebsQ; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=l7qut5CJ; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=voDCebsQ; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=l7qut5CJ; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf20.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749460924; a=rsa-sha256; cv=none; b=Erm3knRWxFFNvL/76Ov7+bUXpsPg+3tiBSxFQKxQynjY86nc66kCUGqPqbpQNtAhAs4BfC au/1n6TZe2RRpP02Nc2J4b702RBkziTcX6h82FFzOmNuVA8P4brhQXeavo4kZ+FeGFhmGR +5llKyWEc5qLbTlDeod22W5JpI8C32U= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=voDCebsQ; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=l7qut5CJ; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=voDCebsQ; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=l7qut5CJ; dmarc=pass (policy=none) header.from=suse.de; spf=pass (imf20.hostedemail.com: domain of osalvador@suse.de designates 195.135.223.131 as permitted sender) smtp.mailfrom=osalvador@suse.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749460924; 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:in-reply-to:references:references:dkim-signature; bh=al9lpScRBg6NZANPePBHCzwADr9FENuYSudRl+0/NRI=; b=KzfxGkBHvofmz4CHYX5tkF/oWduWPHbzf9q+EbfWTSEOTA0htdbynIyl2kt88dyJfhvt5v jprShKwXiufixUW/k1AEzbFPMjK8rWaJDPG7u9HLa01pE9q7BVFyS1ok6ZUygWgKZvLZr2 OK6EdLWl5/KBdpTe6IjhOrctt8k3pg4= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 4F4871F457; Mon, 9 Jun 2025 09:22:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1749460923; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=al9lpScRBg6NZANPePBHCzwADr9FENuYSudRl+0/NRI=; b=voDCebsQVBJ9serr8A6ZRvKK+GmQ1QmUEUtgc5zAwkIP8QCGksl/ZaE2r5ShahxNfs60c7 /rFYrBzyE70rzGdlkcKhuZyF12dzrBG/rmYjUiWF91ru7S3e1uaGvAFIpSYpmSia+wTT7N +569d2aR/kM4bNb6lWPfoQWJWFI+xJ0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1749460923; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=al9lpScRBg6NZANPePBHCzwADr9FENuYSudRl+0/NRI=; b=l7qut5CJpAohLgrErJM2KCz49mNYUkdlyAW6Oj1JH2PMA8/quec42tWxsn6Bq3vh7N942Y K+yhOC1LVuuZT5Cg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1749460923; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=al9lpScRBg6NZANPePBHCzwADr9FENuYSudRl+0/NRI=; b=voDCebsQVBJ9serr8A6ZRvKK+GmQ1QmUEUtgc5zAwkIP8QCGksl/ZaE2r5ShahxNfs60c7 /rFYrBzyE70rzGdlkcKhuZyF12dzrBG/rmYjUiWF91ru7S3e1uaGvAFIpSYpmSia+wTT7N +569d2aR/kM4bNb6lWPfoQWJWFI+xJ0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1749460923; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=al9lpScRBg6NZANPePBHCzwADr9FENuYSudRl+0/NRI=; b=l7qut5CJpAohLgrErJM2KCz49mNYUkdlyAW6Oj1JH2PMA8/quec42tWxsn6Bq3vh7N942Y K+yhOC1LVuuZT5Cg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id A9E37137FE; Mon, 9 Jun 2025 09:22:02 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id WKi6JrqnRmjJGAAAD6G6ig (envelope-from ); Mon, 09 Jun 2025 09:22:02 +0000 From: Oscar Salvador To: Andrew Morton Cc: David Hildenbrand , Vlastimil Babka , Jonathan Cameron , Harry Yoo , Rakie Kim , Hyeonggon Yoo <42.hyeyoo@gmail.com>, Joshua Hahn , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Oscar Salvador Subject: [PATCH v6 04/10] mm,slub: Use node-notifier instead of memory-notifier Date: Mon, 9 Jun 2025 11:21:41 +0200 Message-ID: <20250609092149.312114-5-osalvador@suse.de> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250609092149.312114-1-osalvador@suse.de> References: <20250609092149.312114-1-osalvador@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: A1D8F1C0009 X-Stat-Signature: 5cy1nyucm9hceqe6abbxwdmaxpg7hxgc X-Rspam-User: X-HE-Tag: 1749460924-662004 X-HE-Meta: U2FsdGVkX189tDwAkH0CSBJnBC5ukzf1jfIlv9Kg4Ja5mj7Zag3YudTljwjOl8LUMf1i/25zD0LgnhxtHm3pS/jwuK4ebdzUT/0Q1TMEalIvQNkg6vIkKMiFq7HvsDvr8CISokUfvmaiuAaIoR0Pfr1HzgLFH/6b9dQnqPvgtAX7IWceCobogvhnhjQZx5YT3PsKsPX2q8CAms57TQFcVzouKP9yAQw4G7hvZciYpwMkbF+gNFsvWUwQ2tXfmcAyXgP39ya9chVysNEqRwMB6gvnqp/li6oAy5mZZxauro7Hdl5po3BU11suKZUdZKgQ6hk2n9igCYNa2Lnt4ALQMUNGkTOT5Q+P209XL4QnxfZORBim7kaa+nRTrdlmpr8I6kCWIxGHK2/SE790wGl18r3fyVbD2CvHgK+E3d4J0QMIIs/r2kDD0DFifiprNd1pvemke1Mv3mfy0enknEemftcMt75TE1Vezqt8/pPXaCjzdk43px60bcYQzmFni/r3svck3M7i3fuaXkqdt1hKtzl8Ob/N9Ua+vZmKVC75e8i6WK2Y10rJRMn+d/ClH2wNH0wjXsTJ0eI438kOxHa85jCYMpaeY1y589BGPyjCEq3S22VP0CPAv56Sk1+oPkkEJPLbbU4yrh5cfRy8LSbOX7D1bIWoGWRQhK8Od3V3UftZxcmEFVq5IRcIx7SYMDixfocWCPIpeE81YqQrrBx8aeqvEOcPgN+6rNpP4J88lSW0RBFDnmZg3kknTvgSuwRADO+6muuv3sb6Xfq9aFeqGfnuzQu7iuBQvOpgtPRCKRP3r+toK1oRs5Zznt1BFo/jVYTox+QxeOKJp5S2TyC9AtxlzHNZmg/OuyM3WP1Emhnj0xeFuP/ekHMQarw6NhS8INGtlVlw8AfPI2J++H5tc8TwV3kk9M90sa3so4HPPPnwoqqkZQn2qDX/fHKll5tGgTyuTuJ4CCNEtH3Nrrn TsMhkeFO Kn7MQqG5S/moAPYn6XNhDCFI3gSw8RnL38SMi/ebFnOafmiRTLC1/3/Crm+EoCyjOCkoEzurYRs+4kf+Y/XTde34RwD2xReGkZc0UXNH5pFpCr4kDXaxGNnVDzpiRw43C4g3Lagn/RcgR6sUBGSvGqDPn0upv2zJWfymPZLtHUC5S3lsq6DAztZkooum8Tt+5Vpm8pYnpKfMxbt+BV8KDpMQEhfiCH0iltOfAyeVIuePYGyvBZknHapmQe88KoCwggZY24hfEwYu2ESY5K+3MGzws9DQmlFhaQfKTIjqlE9chXJnEQTVCLf0+o845WK0em32WSvz9f4a2mJinT/UVKF7fVWFqCd8lcsZRaZWCY+AuWutwcv9AoSivBA== 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: slub is only concerned when a numa node changes its memory state, so stop using the memory notifier and use the new numa node notifer instead. Signed-off-by: Oscar Salvador Reviewed-by: Jonathan Cameron Reviewed-by: Harry Yoo Reviewed-by: Vlastimil Babka --- mm/slub.c | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/mm/slub.c b/mm/slub.c index f92b43d36adc..3ff0b94f3eeb 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -6146,7 +6146,7 @@ int __kmem_cache_shrink(struct kmem_cache *s) return __kmem_cache_do_shrink(s); } -static int slab_mem_going_offline_callback(void *arg) +static int slab_mem_going_offline_callback(void) { struct kmem_cache *s; @@ -6160,21 +6160,12 @@ static int slab_mem_going_offline_callback(void *arg) return 0; } -static int slab_mem_going_online_callback(void *arg) +static int slab_mem_going_online_callback(int nid) { struct kmem_cache_node *n; struct kmem_cache *s; - struct memory_notify *marg = arg; - int nid = marg->status_change_nid; int ret = 0; - /* - * If the node's memory is already available, then kmem_cache_node is - * already created. Nothing to do. - */ - if (nid < 0) - return 0; - /* * We are bringing a node online. No memory is available yet. We must * allocate a kmem_cache_node structure in order to bring the node @@ -6214,17 +6205,16 @@ static int slab_mem_going_online_callback(void *arg) static int slab_memory_callback(struct notifier_block *self, unsigned long action, void *arg) { + struct node_notify *nn = arg; + int nid = nn->nid; int ret = 0; switch (action) { - case MEM_GOING_ONLINE: - ret = slab_mem_going_online_callback(arg); - break; - case MEM_GOING_OFFLINE: - ret = slab_mem_going_offline_callback(arg); + case NODE_ADDING_FIRST_MEMORY: + ret = slab_mem_going_online_callback(nid); break; - case MEM_ONLINE: - case MEM_CANCEL_OFFLINE: + case NODE_REMOVING_LAST_MEMORY: + ret = slab_mem_going_offline_callback(); break; } if (ret) @@ -6300,7 +6290,7 @@ void __init kmem_cache_init(void) sizeof(struct kmem_cache_node), SLAB_HWCACHE_ALIGN | SLAB_NO_OBJ_EXT, 0, 0); - hotplug_memory_notifier(slab_memory_callback, SLAB_CALLBACK_PRI); + hotplug_node_notifier(slab_memory_callback, SLAB_CALLBACK_PRI); /* Able to allocate the per node structures */ slab_state = PARTIAL; -- 2.49.0