From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4BAD92773D4 for ; Fri, 16 Jan 2026 16:58:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=209.85.160.181 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768582701; cv=pass; b=t8Jkp8pVLZwNAAJ3lUt9obqcR8KSxi5zV8effle08Igs2fwqy1mNp3drn5dpMTBVqAd8o+7qdGC3Pv6jIpyUUaemCTSOkGCO2Wnk7JddYlwIM7MVFHSbQCI/mJPfvm8iBRwfl0JXnjn1eOnCB+9YuzTOEakGpNeu7i7knW9543I= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768582701; c=relaxed/simple; bh=u2xorRoykCJYfBHwt/70olFyGaH+Wieq9MkT2DW/j1s=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=kqPcDZ/u6QeEjAOdY/djOU/CaWZaA2k1q1Dv5TcrDSmAooGCXFJ4im4zeRe5yrWO2AFpJvtJwyVHZl0ohG7bnEHGBHu43Ka3wDyHoaKpiO0Saz8WSPFar4X8F1O+BgyZv3JDTeChWQIcEOOdH1uWVizfBIGJlApOm8SV56nNbzU= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=p4EajVfO; arc=pass smtp.client-ip=209.85.160.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="p4EajVfO" Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-5014acad6f2so537201cf.1 for ; Fri, 16 Jan 2026 08:58:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768582699; cv=none; d=google.com; s=arc-20240605; b=UoT4K6OwrJgrV0BNUGTMd4LmAyuPogtqr1VpNIunN4w1QB4IiIPYr4f1yjj6HsANl9 JzHcHdvPDqy6n+t+T4SflaahR6vHZdlw6sYiX+vUbUyCmbuvwIOgnOWpd3qgF3liwGZ/ 45+NCRR0IcB0+kZFQtmGmKyCiY1c28hGjlOXZHoFGuHLCquAN4BA/g1HM0nRNsDQ40x5 bEfhjczM8xgLl7fJyOMNyzCNlQHnfLotD8f05Qcy2jxFWwFuj0Jfd+9fqeh98a6tf2P2 nL4ez7mdWImNaphUP0lgXDznDMyq55kGbVyvuO8wk/WfVwdZjUUSGKqJuyJLcFhTTeCh BTqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=UaTAsxPYTCPWjwQ4mQCkSgV5i6jSjH4fHwMIaU55o8I=; fh=MvvohTn9pw0NmmaEV4RTVs7qj4XPt7JdD744T+wF2CQ=; b=UmuRtQVu13jE/V0TsM8NMZI+amD/6XaC4okVBqbEg30N3Z786qeIMt+NCUQG9AU5d1 FNBOuUuAQmM/wsAto/XYqUS8OPsJbtjZt9NydSE68ZzcHDOSOILRYERHRvGKusFewM1i ZWOFrMd6PQUNKfaDIQQ4SMcUpDdkvDtTO3MtrxVCcCadLa6r8V7lOWcWEiYmincUwNxe S/832m1ivKoyOZdngl4ozmm7J6Ylp1hXjN1cXgfMoXvtSeHOtpJypH9bEDdfNsBW01Hx VY8EQodHgIsdxecv6aWIXXZVpAfrt+Gpa2N1Oz3834saXfeZIenOm1CexFjoZrAbTZQG YbPQ==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1768582699; x=1769187499; darn=vger.kernel.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=UaTAsxPYTCPWjwQ4mQCkSgV5i6jSjH4fHwMIaU55o8I=; b=p4EajVfO1J615wblGHRQaYJXwV2qFKzgbJAw3PXcY9JmHIpG9cXd47c1CDfkvjhWPS Jd2hF5AjW5zDbGE2TBBP4sxgh5Q8e69uRGuAA3snisSoDplifP6Kayjgke0eLAy2eewG 9NmzVDUZv0KIwn6XLRsfqUmtzjfMxPJv8txHFJ4UkI+V9gHccAi3n/kPCTuX6Ex8+M6Z Zk9GYKllyxRYhIrSyoK/qJlVFOcaoilCoTenPydMmtbXslujaMIaBAKyhLeMGM8dLwA1 S1E2H3vIp5dkiSMSi7UTr69VA60JwKmZ4y1Em45Sm5ntCbt9b70RTFAfZFtyPejv8FbF JloA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768582699; x=1769187499; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UaTAsxPYTCPWjwQ4mQCkSgV5i6jSjH4fHwMIaU55o8I=; b=D3PA2/XRiBNohq95ivLUeovn4ojCjFdrgtXCrVZ3BL+x0/rmiHrZsclXmyJXMdJZ/y b3xoC7RnbMWLJOzFENPMiRh7qGli6TyJjwbdkDanq1Gq6bKpH6nIytTk77Eyk1HhXqyy 02z+vfWMt33fFVepVkDIdAX7JK4d8QnO+3dc9M0NR8rhT4Q3NnAFmpIlA14EYJUnDG5Q DwDNtq9D3uq2el7HHdPrpRSMXYsbjd2uQrKbCjpgmbroDKpmjS8T/zHwYL5EveZNMHso dFp55GTSqhF18Xcg45jr7FlIH1+JXtDsLStNDE5x+l21G09f35MYySvWEcBQe/JTnlpM o5Ug== X-Forwarded-Encrypted: i=1; AJvYcCV3BjKIv3ndbh/yttSagtIrRHqqk6cD4qBOuuz1hn2FltkjMIfFX06MBCn/SWJWOAYdytkHG1YHgF+UEMY=@vger.kernel.org X-Gm-Message-State: AOJu0YxqzHys7c5lUDTZv3TLDUPVQghVCeH0zYwvYzzacDMXixgBzNOd wCrBtxQG99PfufFtKcMlCDrNYVxg9x12o3izhqX7fymYltGBDlBDoExnb6sNJbkgQUy/zeeRhjt GDBdb/0/c7smc0OEFEd7iif37yak4o4BjJNuhpJ1J X-Gm-Gg: AY/fxX526uCASBs3ygg+GkLhEhM88YOpHLteTGdA+M3NXezDP2Mf+XweiKjkGugKl2S vMh5ewCfqHCkuldDPRq5MU+i0kQrVAwWCvj8fxifGvB0+9YLBCYe8tkOzdbpCSDGq0wIJpldm6p R0kGmqrbATOGrdZ8/VWQlg4F9svy0k6fp/iiMMqif3v16ld7n7N3x342KLu6Mw6HPv65q+9CWGi /Y6iNP8NMuyXFY4tLdSSp8mVa4JchoapKr5ny1LxWGBeK5Xnj1nWsGKy87bIh1WxHeFRg== X-Received: by 2002:a05:622a:4c6:b0:4f1:9c3f:2845 with SMTP id d75a77b69052e-502a36feeefmr9677951cf.9.1768582698713; Fri, 16 Jan 2026 08:58:18 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20260112-sheaves-for-all-v2-0-98225cfb50cf@suse.cz> <20260112-sheaves-for-all-v2-3-98225cfb50cf@suse.cz> <4e73da60-b58d-40bd-86ed-a0243967017b@suse.cz> In-Reply-To: <4e73da60-b58d-40bd-86ed-a0243967017b@suse.cz> From: Suren Baghdasaryan Date: Fri, 16 Jan 2026 08:58:07 -0800 X-Gm-Features: AZwV_QiGfwWS_a1m6Zzi_yFSpjGioLT9sSjsdK1eWkPIvYtSYBlLySU-l0-N1MQ Message-ID: Subject: Re: [PATCH RFC v2 03/20] mm/slab: make caches with sheaves mergeable To: Vlastimil Babka Cc: Harry Yoo , Petr Tesarik , Christoph Lameter , David Rientjes , Roman Gushchin , Hao Li , Andrew Morton , Uladzislau Rezki , "Liam R. Howlett" , Sebastian Andrzej Siewior , Alexei Starovoitov , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-rt-devel@lists.linux.dev, bpf@vger.kernel.org, kasan-dev@googlegroups.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jan 15, 2026 at 11:24=E2=80=AFPM Vlastimil Babka w= rote: > > On 1/16/26 01:22, Suren Baghdasaryan wrote: > > On Mon, Jan 12, 2026 at 3:17=E2=80=AFPM Vlastimil Babka wrote: > >> > >> Before enabling sheaves for all caches (with automatically determined > >> capacity), their enablement should no longer prevent merging of caches= . > >> Limit this merge prevention only to caches that were created with a > >> specific sheaf capacity, by adding the SLAB_NO_MERGE flag to them. > >> > >> Signed-off-by: Vlastimil Babka > >> --- > >> mm/slab_common.c | 13 +++++++------ > >> 1 file changed, 7 insertions(+), 6 deletions(-) > >> > >> diff --git a/mm/slab_common.c b/mm/slab_common.c > >> index 52591d9c04f3..54c17dc6d5ec 100644 > >> --- a/mm/slab_common.c > >> +++ b/mm/slab_common.c > >> @@ -163,9 +163,6 @@ int slab_unmergeable(struct kmem_cache *s) > >> return 1; > >> #endif > >> > >> - if (s->cpu_sheaves) > >> - return 1; > >> - > >> /* > >> * We may have set a slab to be unmergeable during bootstrap. > >> */ > >> @@ -190,9 +187,6 @@ static struct kmem_cache *find_mergeable(unsigned = int size, slab_flags_t flags, > >> if (IS_ENABLED(CONFIG_HARDENED_USERCOPY) && args->usersize) > >> return NULL; > >> > >> - if (args->sheaf_capacity) > >> - return NULL; > >> - > >> flags =3D kmem_cache_flags(flags, name); > >> > >> if (flags & SLAB_NEVER_MERGE) > >> @@ -337,6 +331,13 @@ struct kmem_cache *__kmem_cache_create_args(const= char *name, > >> flags &=3D ~SLAB_DEBUG_FLAGS; > >> #endif > >> > >> + /* > >> + * Caches with specific capacity are special enough. It's simp= ler to > >> + * make them unmergeable. > >> + */ > >> + if (args->sheaf_capacity) > >> + flags |=3D SLAB_NO_MERGE; > > > > So, this is very subtle and maybe not that important but the comment > > for kmem_cache_args.sheaf_capacity claims "When slub_debug is enabled > > for the cache, the sheaf_capacity argument is ignored.". With this > > change this argument is not completely ignored anymore... It sets > > SLAB_NO_MERGE even if slub_debug is enabled, doesn't it? > > True, but the various debug flags set by slub_debug also prevent merging = so > it doesn't change the outcome. Yeah, I thought that would not matter much but wanted to make sure. After finishing the review I'll have to remember to verify if that comment on slub_debug/sheaf interplay stays true even after args->sheaf_capacity becomes the min sheaf capacity. > > >> + > >> mutex_lock(&slab_mutex); > >> > >> err =3D kmem_cache_sanity_check(name, object_size); > >> > >> -- > >> 2.52.0 > >> >