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 EDDE8C3ABBC for ; Tue, 6 May 2025 17:33:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8418B6B000A; Tue, 6 May 2025 13:32:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7ECB96B0083; Tue, 6 May 2025 13:32:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6DBCB6B0085; Tue, 6 May 2025 13:32:58 -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 515526B000A for ; Tue, 6 May 2025 13:32:58 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 97CAC1405D1 for ; Tue, 6 May 2025 17:32:59 +0000 (UTC) X-FDA: 83413178478.03.D482969 Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by imf24.hostedemail.com (Postfix) with ESMTP id B95DF18000F for ; Tue, 6 May 2025 17:32:57 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=t0MSyG9q; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf24.hostedemail.com: domain of surenb@google.com designates 209.85.160.171 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746552777; a=rsa-sha256; cv=none; b=UZ7SpKz+GSoenRANwQIxxJ4MR3DWyqZN/LVW+6JcD3yB5kfcW6LM4SRWDiUX/bXFzqvbl2 yM7TkXQqliU9p/tbtfxTod6SuIGNZLCox7U0KrcJPn47adxprPCDC1QzrjQq6F5VEF/3q3 jEW/OYXDXJqTRZWXu02eK/sE088r63Q= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=t0MSyG9q; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf24.hostedemail.com: domain of surenb@google.com designates 209.85.160.171 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746552777; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=a3MSIo5Nl0iHVat7aILeomKDUxy2gPnZ7VSQWasqUek=; b=mury7UMPjiqwMrFXC2LdB2m0ALuhyAfzZnBXLLp9sde7OlDx3JtPl6/En5d5epRys6Eujh fZHSRaAPPLDXdwNEsP7DvbY/3Y/Dlp7vQPFq4kcIPlOBOwQYPx2wUuy+hzgKg7cY8QVJxz 8Nksn/jzwf7JHcRKpAjcRJpgnuHsQBA= Received: by mail-qt1-f171.google.com with SMTP id d75a77b69052e-47666573242so15721cf.0 for ; Tue, 06 May 2025 10:32:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746552777; x=1747157577; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=a3MSIo5Nl0iHVat7aILeomKDUxy2gPnZ7VSQWasqUek=; b=t0MSyG9qNxRD7YdrRabunKyx3hVgSig8pK7Gu+JLRiaVfcqysb369LXXqthW4GMUyB D3AaLLQfSLblNCDECUZ75IEAH6NhsaDu4eRIi1nOML4QelWSepURUIISg4Vh/8f/wvfM jqsug8ELoE5pl1hzpTVbC2KdRkQVCkaI8BsDMsWQU9yf5lGPzsRa0DpIC4w/srZZJSrP HHsdFM8N7rpucfIUbXu5nfQ0mhCv6zST/cQQ4LK1Gsy47Oip6RsAPDO6nVu1Lx4a9FJm psD6jcaVX4PDypaz7KR3e53vcRNLPga/E1vY13KTfQY8hzfru6/AVppPb0dWWVTlwy4P HEwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746552777; x=1747157577; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a3MSIo5Nl0iHVat7aILeomKDUxy2gPnZ7VSQWasqUek=; b=IV6wOHmsgZUTpG+LqThAn1HTLzmFwOZ2x25hEIUkTZH1xbloPDHga32VFGy4jESCv9 Wxd03zdlcV5A8E0tbnvnJFLXv2CP0tbS+TvoL4nRrGukw1ZqST/oNMm/X67qSL1JNZxX xBPCmQacPvIljGafULINMpQ2asrhvXObOxxjClkw7yaw6Cnv5ClcylW9SpwTvEkchZVo jELfSQoHCRXEmnvVs+kJiSo+D+UdBTTf3OqOF7ZTLQrQ+HzH0M8IriAIyZkov7tdbW4o Jb6HBqLShYBL5uu3+B0zHilRQqijNk3lxKlXVTx2PjfWTg7nEsslYdzy/uCfsZd1gNGH 07Dw== X-Forwarded-Encrypted: i=1; AJvYcCUbtXITtURu+6lkVK8O8Ds+hp77c22Kf8UwLfZ6gHAXcAqhE4LvCrSyAbi8mZ0QQO0B4kXbiAbr7Q==@kvack.org X-Gm-Message-State: AOJu0YxDBrLlQHpvD5FowXNzN4HJo6R+d1dBjKxFP/3xuQAaMvbzat6F s70SoP9kMr05BonoDjVH3RtWaoODgqEQx1Os5LRCAYj2U9HbcpjNdzZnyrQ3VNV/N7hE1v3GwkA QyNWoxaQPMS5BeyhgSXjxeOIikXGfVaO2uh96 X-Gm-Gg: ASbGnctPodXDxISKZ/H/DgLmt6rXEh7yhSGYlaUze8ojKWM1fOn4PxrHs53YHdcGpf+ fg6FZ5hDCrFB90VmcEMp149E0gJuEjAJhbGxMzKej8O8n5RYM446Gh0d5+BKxeBNyJ5pgHYJEIP DYG+0Zioqb/7cO3XoRFVZMoWqOG+rPXelPi2gP/wQacSrllveRMIW23snp7bLCIg== X-Google-Smtp-Source: AGHT+IG98g81WgMXXkuAILhcqwl2dPFyZHQOV/uqvjQbRfFtgeXEIDp4J9+Lt9m0P4v6pl5tN+tZqWKjP+Q0giH6IS4= X-Received: by 2002:a05:622a:316:b0:48d:8f6e:ece7 with SMTP id d75a77b69052e-491ff65fdeamr987151cf.3.1746552776442; Tue, 06 May 2025 10:32:56 -0700 (PDT) MIME-Version: 1.0 References: <20250425-slub-percpu-caches-v4-0-8a636982b4a4@suse.cz> <20250425-slub-percpu-caches-v4-1-8a636982b4a4@suse.cz> <142aeeb5-d6d8-84ca-e7a2-ba564185c565@gentwo.org> <4fa1f4fb-4148-45e8-930c-1175ce212cab@suse.cz> In-Reply-To: <4fa1f4fb-4148-45e8-930c-1175ce212cab@suse.cz> From: Suren Baghdasaryan Date: Tue, 6 May 2025 10:32:43 -0700 X-Gm-Features: ATxdqUH4PjzoYVBacL_EtNXCAZRGtR6y5A7WTiVQvBIg3V1k_Yt6rSRk1bOT3XE Message-ID: Subject: Re: [PATCH v4 1/9] slab: add opt-in caching layer of percpu sheaves To: Vlastimil Babka Cc: "Christoph Lameter (Ampere)" , "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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: B95DF18000F X-Stat-Signature: 8mdsxb1j59qmots17xype4178royk7ft X-Rspam-User: X-HE-Tag: 1746552777-98737 X-HE-Meta: U2FsdGVkX19zZqDm9ZfPVBB+0yVBMp683V1e/bpcRv/WRpFpeU4RwlXOo1ormtJvTsSSTID8iJL7l+tHpzaESh2eyJQSBjP1px65CFln5WvabZEiBJZLOD8XZk7rmTD/kODCNqXsGJWSHToL8beXFIR9oVTE0xhFaHe2DJnYzEg/cZ5tyws3MK5YcS0wCHYBVyQ7SjQbja5Z7Q1kEwospXDC5pxCBXmW1oRBeIR00vlCNSYfwfVJNEmN+uf300rA3zPPuL2mkfCjA6hWhQfFAayIH470KLqghYDV8gK7Tho2Pm+OY1hQdJVzejCNdIHlNdKcjcDa5g+5+VGIIxIeXGWe/LZzzCACFXzgXbcytfWbIIdBsu/zSuG4z+mq9XIVJTmtT+43nAU059wN6IozDTmFtll9hupaX6chDnOEMOXNnCR+ZgP8ZZARwjP+BGvC41Pkd7rt6+26NcbZ+dH9DwZQ2SCkHHCfIWafy+yprr4uMRRefwK1YReB7YJL5092JZWYgg+DR9Bw2qlzzEKr2RNddEu0WDsT8hQgEEJ3lVgTQdet5xoKJKBWewPsEZMTHcVNBEmJz/B9LToGLMu/ybQmheklFfCTGQfAZnRmAGOjqW6ZU6m9NTqKuFlNAaTXdBPYLpAanYvTt4QnojK5QiivJmjTF3kidheBUyw0rH4+AtsQfRX6QSSQFS9FmHR2S5jX2GZBNj5qjirnnp17XKDIe/rkfoSlttMUxnWgYYHplVDaY2uMgrQc/MoFd7gq3QlKjqOjyFL45FB+PvJ7E4POlYF7S1ijbl9z40b8nKMsmgxgd60lApUpXwCD+3Uyc7b/iWIUFvd3Hy43TtJYEbCxCK+XBeQvH5HQbN0PCfTWyg4Z5yDs+QDQA1s2dU5hIjiZu0+7fr6uDAtaYNmnaAzf3ot1APy7t7G5niioq4ZACyKvMy38Y0xCzTo/drd5U848qF5kTFuaBXGcUzY SbciMs/o b9vylAf1ZDKvrB2NG7PYaHPF5S7PMHJn1NYb4ZW9wgKde3dMjd/LGhRBWcATspZQ/870/XMx8WTKdHjGq8+cz6OcHK9I/7AhyBXRsi6lYhOHMCMO9gL04WyXMqiqxtc/V15MvoeXJcv7PJSphfkutkHyhZe16CN63Avj80sJDaefo3uqph9IVs8bUf9XVf+7yfiry 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 Mon, Apr 28, 2025 at 12:01=E2=80=AFAM Vlastimil Babka w= rote: > > On 4/25/25 19:31, Christoph Lameter (Ampere) wrote: > > 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 =3D __slab_alloc_node(s, gfpflags, node, addr, orig_size); > >> + if (s->cpu_sheaves && node =3D=3D NUMA_NO_NODE) > >> + object =3D 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. > > To handle that, alloc_from_pcs() contains this: > > #ifdef CONFIG_NUMA > if (static_branch_unlikely(&strict_numa)) { > if (current->mempolicy) > return NULL; > } > #endif > > And so there will be a fallback. It doesn't (currently) try to evaluate i= f > the local node is compatible as this is before taking the local lock (and > thus preventing migration). > > > >> @@ -4653,7 +5483,10 @@ void slab_free(struct kmem_cache *s, struct sla= b *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), f= alse))) > >> + 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? Overall the patch LGTM but I would like to hear the answer to this question too, please. > > >