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 3C915C369C2 for ; Fri, 25 Apr 2025 17:40:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 74F796B000E; Fri, 25 Apr 2025 13:40:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6FF106B0010; Fri, 25 Apr 2025 13:40:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5EC676B0011; Fri, 25 Apr 2025 13:40:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 345876B000E for ; Fri, 25 Apr 2025 13:40:43 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id ED0801A03D4 for ; Fri, 25 Apr 2025 17:40:43 +0000 (UTC) X-FDA: 83373281166.04.8C25B8B Received: from gentwo.org (gentwo.org [62.72.0.81]) by imf17.hostedemail.com (Postfix) with ESMTP id 4046940004 for ; Fri, 25 Apr 2025 17:40:42 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gentwo.org header.s=default header.b=TOQ7r9lM; spf=pass (imf17.hostedemail.com: domain of cl@gentwo.org designates 62.72.0.81 as permitted sender) smtp.mailfrom=cl@gentwo.org; dmarc=pass (policy=reject) header.from=gentwo.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745602842; 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=anM/+aBxQ0N0yNA51tBKAIaJ+NasY6yr8bwD4lzawKo=; b=12P0M3WzvUFZvaX7F/ffC0H+rpFEUu9b6lUWGy/RzxuJTyqDeaWjnCUlI7rySX6yZhCBSu c7IkaqlvLTFwfelv+PxBVMJJTwYpkxooUtBz/qLkwi/719uKebgz7odnpnwEUL8hDwRoIC qwPvbpPXlKvUDHKuz8nQsfk9BtbBOi8= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gentwo.org header.s=default header.b=TOQ7r9lM; spf=pass (imf17.hostedemail.com: domain of cl@gentwo.org designates 62.72.0.81 as permitted sender) smtp.mailfrom=cl@gentwo.org; dmarc=pass (policy=reject) header.from=gentwo.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745602842; a=rsa-sha256; cv=none; b=OA3j0mcq83CTi1jvfXLEF5mcMWXOWk6Dj4AefXbGBkG8dAruDBXp9u+vUg2xivBI0thnDV zK3Xp7zfE5ggfU9muceAPQRi8Uv8JJpk5TMyXjFv2FLQHsRNtEQ1QOk+ewN4QBiOuiA88a ygNUjJwwo9IqTrg2Rm0s7j/7BTM8ehs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gentwo.org; s=default; t=1745602305; bh=9gJmImKVC4FuwSLCJcEUR0D4hi3kC8HpgxyNxRL/kcs=; h=Date:From:To:cc:Subject:In-Reply-To:References:From; b=TOQ7r9lMIw0rJsRtufCdwQcxGKiHlx8AFjeTZlxEOXa6wuYW4XcDS50vGh0gxqAkK XJlQsakXW4faKV6Y8jKpm9qFirmuV+ImsadlHgMf4L6brB5IjzVAAHHrPfQtTgR8LI Xqticjj2qj4MJGtl+O8Pik/NvN2suB4awUm27SVw= Received: by gentwo.org (Postfix, from userid 1003) id A90654027F; Fri, 25 Apr 2025 10:31:45 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by gentwo.org (Postfix) with ESMTP id A8161401D1; Fri, 25 Apr 2025 10:31:45 -0700 (PDT) Date: Fri, 25 Apr 2025 10:31:45 -0700 (PDT) From: "Christoph Lameter (Ampere)" To: Vlastimil Babka cc: Suren Baghdasaryan , "Liam R. Howlett" , David Rientjes , Roman Gushchin , Harry Yoo , Uladzislau Rezki , linux-mm@kvack.org, linux-kernel@vger.kernel.org, rcu@vger.kernel.org, maple-tree@lists.infradead.org Subject: Re: [PATCH v4 1/9] slab: add opt-in caching layer of percpu sheaves In-Reply-To: <20250425-slub-percpu-caches-v4-1-8a636982b4a4@suse.cz> Message-ID: <142aeeb5-d6d8-84ca-e7a2-ba564185c565@gentwo.org> References: <20250425-slub-percpu-caches-v4-0-8a636982b4a4@suse.cz> <20250425-slub-percpu-caches-v4-1-8a636982b4a4@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Stat-Signature: mz1f1zmugokxc7e8ikzzfdtadrn6kuhz X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 4046940004 X-Rspam-User: X-HE-Tag: 1745602842-534872 X-HE-Meta: U2FsdGVkX18Bgy0MDppqpaffqj1g9g1AqwyUK2TpqtUXxx5lkZe51irnaQvfXzrkywYAsbgkBfMrq4XcyNOXqbQBBlMgDABbf+Sk/7Ax1NF0gCgRW3U+Wup2Uz4bBetAa0oYiJKv5ytwEq8zPjLL1TBB2Sr3qlbx8xn6jSHxXVKat1YY9E6svpm0TYL8pTejqwi3gpQmB1F40OtnShg6y3j5DckpzaW52dfEl8dQIwE/EcF3jhS0Yy/z36ZUigihW+rvRd/fZk5cI/pPKIOxCMyxQvIpDlj9nH5MM/dLKqN0+Yi/7fytEOE0kLKXfpRbkSHHROdmCOsBAMm/B96hlE16ArcKtN8X3LEy7URNGppMmXg+R+lc3a6Xoyo/QUxhufeR8kyKZW7bOSIgKEsVxclJIBWsVn6x+P8sVqY2aP4m9RZNTnKDgi6RggZA1QyLM808bg3H39TDuk9XD6p1PHOaAVWMfNEYP1eGBwXeQcV/oEG7lwykyFfdDBdCsEwwBcIXmSWCo3GpNqxbqH9d4E5KsZrvM/dv8fINyuugzkhwoNzX/WUPxdP7GryPzWi1pRTwLH7XdQ89D15NOHqfjfSIOyVvS1BqBvL3LNlINLSAzDkcFXq5s8T3HuK2O9CH/oLlFQtOsdJTwxogrDwQdmvJh7qC2D+koxU5lkU5zHJ6JG+P+AauovLMeFu6/8nQpKI58k3c4WEFKWB+kXh1KCmuMJqo0diNOCbl4mMyIG/UAGz2qn4fbVBy/38ohikuYlEWzkh5eI2eyaZbhozDXCDENjHDHDyF7rN4Nw7uwDb0AjegzrYoF4NOrX7wzArPOiAqfXBNwmuFthU013oGo2BZ4ZcXXjMBelFFs35Yvyc0bJkHQwUGQm/mYDO3rKOCGkEO3KnA25yWa12Dpm3pkNZzEFVAziUlYo2BF6zBt+q3Mo8oHW0Xa73w9ba8qf1l55yZTApGDit5dO0xcyR I1fuOFn6 Sv6p7YzmeQ9idtwiomjymGQ4XYKcQgSr2zHFnSJE45c1nTuD851XVq0WRkuwXWrOJ4rEcwENnCarcXp3mmq4Nf4yawKsnRTLXytNRb+aPxT+MaOwSSVw5KBIbpyVCZE3CsQXPGA91waeyOIEN1iHhWDhaglyy11VHXJ4gAI8xIpp//Y+4bS3C2dR7fLghgOlgs2EmvgKyU77RVdf3qvF4aFteVAdzZErTLdZSjld2DxrNc6IytnRFEfjhAA== 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 Fri, 25 Apr 2025, Vlastimil Babka wrote: > @@ -4195,7 +4793,11 @@ static __fastpath_inline void *slab_alloc_node(struct kmem_cache *s, struct list > if (unlikely(object)) > goto out; > > - object = __slab_alloc_node(s, gfpflags, node, addr, orig_size); > + if (s->cpu_sheaves && node == NUMA_NO_NODE) > + object = alloc_from_pcs(s, gfpflags); The node to use is determined in __slab_alloc_node() only based on the memory policy etc. NUMA_NO_NODE allocations can be redirected by memory policies and this check disables it. > @@ -4653,7 +5483,10 @@ void slab_free(struct kmem_cache *s, struct slab *slab, void *object, > memcg_slab_free_hook(s, slab, &object, 1); > alloc_tagging_slab_free_hook(s, slab, &object, 1); > > - if (likely(slab_free_hook(s, object, slab_want_init_on_free(s), false))) > + if (unlikely(!slab_free_hook(s, object, slab_want_init_on_free(s), false))) > + return; > + > + if (!s->cpu_sheaves || !free_to_pcs(s, object)) > do_slab_free(s, slab, object, object, 1, addr); > } We free to pcs even if the object is remote?