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 1AD7DC3ABC9 for ; Thu, 15 May 2025 15:04:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D799A6B00A3; Thu, 15 May 2025 11:04:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D04476B00A4; Thu, 15 May 2025 11:04:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BA5556B00A5; Thu, 15 May 2025 11:04:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 955026B00A3 for ; Thu, 15 May 2025 11:04:15 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D3C07140285 for ; Thu, 15 May 2025 15:04:15 +0000 (UTC) X-FDA: 83445462870.09.0B7D126 Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by imf10.hostedemail.com (Postfix) with ESMTP id EDFB9C0009 for ; Thu, 15 May 2025 15:04:13 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=UbD7Vshk; spf=pass (imf10.hostedemail.com: domain of surenb@google.com designates 209.85.160.181 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747321454; a=rsa-sha256; cv=none; b=2J8I5FpK/k0u3sEKgHEmGeI/e6bKyjNX95V5L8jusNXkWLWS8oice3BaKIz6XNZz1AqVIJ Tm4ax9ys9RXOe+7uh77r9oS89vJyVhJK2senthJeR4lQCoHTjhGNlrXSRUhHL3sW1CileS i7j567Z9qyV4HV958c2PmXfgStxouxc= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=UbD7Vshk; spf=pass (imf10.hostedemail.com: domain of surenb@google.com designates 209.85.160.181 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747321454; 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=TESZwvrO5vJ96YaJ7vnx+FVieN+/kHd9koL3nGIsUYA=; b=xAk/r8okFYDgLFuQLGO94KMIIvOmCuAseKfLZCC+BNxDGixE2Fj0RppvQGjMOskbRKoSWY YCoFgi4ctmJPmgg/rv9U5PK+evSMW4+rGHFtzexYjBuwcKLCPoMWHe3p73rCDRLkkmmk0/ Hj0XWlfKi987+q1A7E/X50zo1+wEy18= Received: by mail-qt1-f181.google.com with SMTP id d75a77b69052e-48b7747f881so319001cf.1 for ; Thu, 15 May 2025 08:04:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1747321453; x=1747926253; 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=TESZwvrO5vJ96YaJ7vnx+FVieN+/kHd9koL3nGIsUYA=; b=UbD7VshkGyymgg/AwAvbUsQetJ447erCR4qlfQQ4D+Q9rwXswAFkNfxVZFjIFjnTxN GgmOwvb7228BTDjnwViOZTMNkAKU59R7a76cXbkXryedbatOqNRmUKny73H3MajZ2319 E4IwcGFgF007o7t+EcHIVvTkFXVnMYRK8tCDvaevCmVMRGFXl8olRsUgWwgS2kyh7t0l qg+hmxwxW4t3d94+RV6zy5DaTrDx+22m8KFEqUEOVTiTAx/p6Yo+muEgV+srUN3b7PlO 8KWHzB98I8St8PT7NLaT41/xPHpMvFVLpTUCLCzZYo/ufVtjv/AIFqMAQieng2UVRpXI mqOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747321453; x=1747926253; 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=TESZwvrO5vJ96YaJ7vnx+FVieN+/kHd9koL3nGIsUYA=; b=jp+gnC5QTELYJe82zdIq8aT786CqY/UCj9WzB5faDkTTCP0s2lpO5JvAnrgx2KNJq4 IhSPSQsrqnpON8mBukbLtNTu3Q4MCyvHzEheG53ZeHr/tldP1h3pz/IBtTCdLOFC+x8p aFhPpeiCxg2dDTguXPMveJh3LisvG+gcoF1xQ4n282MomhxvOAzhvI5ZZLHNjpbG1NjG fgaTqRfEGDfjwpwqxn+qo7ANUfQXkwOfhjUCwGFnVnrkWdy1e+sKUgh7QKNz9aMD4pG4 DtEiHteUAN6Hs5LCXR3b9a6MEvxsz7PbuvRuWj93WN3lNu+4J7mx9q2eYIGhLS1y4hA4 SQbw== X-Forwarded-Encrypted: i=1; AJvYcCXmy5CS4pQPme6rZgzvlUphmNeIPrNppddQ3Fkl5CgV4wS8df3MCM6uRscsvwMDDWBQqSnANcjGJA==@kvack.org X-Gm-Message-State: AOJu0YxOEQqoBVEh3Gk7S/LGT2jnQJOaWFLM1L2ZOZ/itFKh/PzB2HYA 4qlUQ79g2Emiz8IFFcOdafIvHZbVvHpc5mrI79nSN9JVkojuxpUuEHpx+NR+xegiBHvGz0uQWzd 0tKfq2VwnqrexNwxcmQkuKbAug08Eoz0+DJfCgzwP X-Gm-Gg: ASbGncsHVLjeHYLrFY+7SWETa7bdfeX3Sk7Cxbc8womeLexDulS3A0tNZ3UZ7S/tOTI kKhzQXx+IqPyMLt0Bc3mg+5txTvqhpPzQrdxqBqY29tyw+exoaQYF3aKQzlTY4jda/3pNLRa7hW cUu2g8o0xD9vuh2zFhP2gMiHfLU/c7E6D5wfSQQtIxU6BZ0xZyLI/Rj8wVILqy2w== X-Google-Smtp-Source: AGHT+IFfkR3W5VNelP+GA4ohCT0Dcsb8uCPnGXBpE2Rk1IDYPjmDvQ6kKMdPCaRrMQMfaOuaSbnoPb4rTNAIPHov2Iw= X-Received: by 2002:ac8:5d50:0:b0:491:8f3c:ce0c with SMTP id d75a77b69052e-494a1dd13a0mr4202841cf.18.1747321452737; Thu, 15 May 2025 08:04:12 -0700 (PDT) MIME-Version: 1.0 References: <20250425-slub-percpu-caches-v4-0-8a636982b4a4@suse.cz> <20250425-slub-percpu-caches-v4-2-8a636982b4a4@suse.cz> <07f321d5-4416-4be4-9696-00f0d83895f5@suse.cz> In-Reply-To: <07f321d5-4416-4be4-9696-00f0d83895f5@suse.cz> From: Suren Baghdasaryan Date: Thu, 15 May 2025 08:03:59 -0700 X-Gm-Features: AX0GCFvqG0RSuXzDDSF9fFI7cyINP9lGj2diMh8ie4U2ZfZ3NqqakHD4TgfWFYE Message-ID: Subject: Re: [PATCH v4 2/9] slab: add sheaf support for batching kfree_rcu() operations To: Vlastimil Babka Cc: "Liam R. Howlett" , Christoph Lameter , 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-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: EDFB9C0009 X-Stat-Signature: 6jjkzh7uq7zn349qa9fg5bufp9khsgcc X-HE-Tag: 1747321453-808019 X-HE-Meta: U2FsdGVkX1+Q4L+PIRYJUkqSUs3C1wj9mnPdWafCM4JWU2iduAbxKqrtARnEEK9i+KOu7jSceH8joMS2PP8Myi7/I/1JrFXDHtkKLfgjteWl/+W+nva59o/wMEfB1BXaXxGpc0pU0hAOyjcy6yrAky5pisyfaVU9uPiSikB1FYa4TmdzRTNL2Q8KelFtDLopx35EhIGNyeeEedT4urY0aCylceJszPVGjHKZA/CrgesqTHvJcYx0yZM98Ilj+uk9Bd7ymfZEg+oBqX4wVEDq63qB4TNB1Q5/1C6HiofQFggbBHqPfRBAyxD9J1eRtHBkY9FJtoDUqUCwOOJc39gkeQiOi36Fl8KKCWtUh6YFSTjKlgRgDoRE23sDPlbZ1qHzdHisGGibli1jbjkLH1nofeO6VQv13hXVdmiWFwkw95ZsPcU8zlOBH1Iax9m08wO+naGAJ59a8JVX4JiVnMll25Fh+eOpNppZq+hjAuEqm72lpmaboOnC7KzqXMqeJECLEC/Q5z5GRRBmtJbF5BcnPKYmn8nUToSp2g94gOKHu7ka764NKgXeu9ZJAL/WAOkXmojqUhTeL2lIJa/QnFz034XFs4jlkYDVxWCiGzI6CASDkVikWhFi6f6ufCTcKJJI67f2ymNThQ+ks0+eGimtuEizVsJs61rplipWxfd3w1HjsAyd45dg9QJ9xvcfIWzj9JhiXnfxRQmq8Nka82KL5CtIgV9xduoaKJOoiRyityj5ZRWvMx8ie1psBGkIq9AuXvbsX0dtmc1QOynT3LhV8gfioah71+ybizHbSWvYBsNJ6kJifgJGN6RJSHvBqL49COnJbJvJXS0o8jqMVr4G0OC4PcDZABNaFNHJ0DLUPnt8fTU9ypxJ1zAw0pZEBxLMJiBmvYNiJWwuHhygnwcxq9wEEyzNRSgYyR2ASLKtrDOwLWXqZa+OJJ8KYH/jRHP3HCzJTtRY9IIBGy6qBte alPZlVik pWJiFkD2wDsgo5NL7PEotRXc5RNMMxITXIHEf/E9QHEN0wB+nLPizFSQH5Ec1kL7gVbCfSYsj1AiISRR+b/uAy4eIDkgxj+nph5l0cXkK9X1w93BLNRzzCg9EU5x3A8+hnbc2k+dI6T/5SM0QhOft2iJuq0kujv1/+u+WWGAqtzIqHF/bURRFOcpc3LAIsmXv/NV3zhLHTVNWmUJHajCj4VCLJ1LZ4ZytOSKvk/iV5h/5w74= 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 Thu, May 15, 2025 at 1:45=E2=80=AFAM Vlastimil Babka wr= ote: > > On 5/14/25 16:01, Vlastimil Babka wrote: > > On 5/6/25 23:34, Suren Baghdasaryan wrote: > >> On Fri, Apr 25, 2025 at 1:27=E2=80=AFAM Vlastimil Babka wrote: > >>> @@ -2631,6 +2637,24 @@ static void sheaf_flush_unused(struct kmem_cac= he *s, struct slab_sheaf *sheaf) > >>> sheaf->size =3D 0; > >>> } > >>> > >>> +static void __rcu_free_sheaf_prepare(struct kmem_cache *s, > >>> + struct slab_sheaf *sheaf); > >> > >> I think you could safely move __rcu_free_sheaf_prepare() here and > >> avoid the above forward declaration. > > > > Right, done. > > > >>> @@ -5304,6 +5340,140 @@ bool free_to_pcs(struct kmem_cache *s, void *= object) > >>> return true; > >>> } > >>> > >>> +static void __rcu_free_sheaf_prepare(struct kmem_cache *s, > >>> + struct slab_sheaf *sheaf) > >> > >> This function seems to be an almost exact copy of free_to_pcs_bulk() > >> from your previous patch. Maybe they can be consolidated? > > > > True, I've extracted it to __kmem_cache_free_bulk_prepare(). > > ... and that was a mistake as free_to_pcs_bulk() diverges in patch 9/9 in= a > way that this makes it too infeasible Ah, I see. Makes sense. Sorry for the misleading suggestion.