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 6A249C54E66 for ; Wed, 13 Mar 2024 23:36:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AC17780063; Wed, 13 Mar 2024 19:36:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A71D28D0037; Wed, 13 Mar 2024 19:36:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9128280063; Wed, 13 Mar 2024 19:36:29 -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 7D98D8D0037 for ; Wed, 13 Mar 2024 19:36:29 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 4592A40912 for ; Wed, 13 Mar 2024 23:36:29 +0000 (UTC) X-FDA: 81893627298.22.161DC81 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by imf23.hostedemail.com (Postfix) with ESMTP id 47095140012 for ; Wed, 13 Mar 2024 23:36:27 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=YXdGZ3cD; spf=pass (imf23.hostedemail.com: domain of rientjes@google.com designates 209.85.214.176 as permitted sender) smtp.mailfrom=rientjes@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=1710372987; 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=uNLPEmLrYuypFvKNLV3xlGFW7PDRRyL15rDjWgaPTcE=; b=Zrv+/VpF5XB8QyiaDJw3yusC46E6IE2yTfOEIBhoT5TT2wASqSzKiQCQUm9+RkLWbekiHp FEeAEVEnCqE/mYNm97qV5Ub4yQZNagjqG2D+j+W5CftD82Cux38/B/mZ9fxK0wNkn+6qyI uYgpW7FJlMH0K/ZFMgOnphbuzX8d0q4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710372987; a=rsa-sha256; cv=none; b=09e/FF341g4aXLzxyE6+Y3N4O8maax2ZKpq0P3/nzH3ikHknflP+NAX5Q8x3kyOywwlk3h mksqljCKICCYWdglHS0MJuqiT95Jmh41vI+S9r2gEOdjUX8ieGRPArWShIoMUiajNNSZba /sVJUVPkoFM/C7IC/aLvSfeSyDp+GmE= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=YXdGZ3cD; spf=pass (imf23.hostedemail.com: domain of rientjes@google.com designates 209.85.214.176 as permitted sender) smtp.mailfrom=rientjes@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-1dddd1a8732so65335ad.0 for ; Wed, 13 Mar 2024 16:36:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1710372986; x=1710977786; darn=kvack.org; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=uNLPEmLrYuypFvKNLV3xlGFW7PDRRyL15rDjWgaPTcE=; b=YXdGZ3cDptwxIGkHMy8idKfhpYHjBx0afkbiO8PyZX8GZB1/fw8M7LslQM4Rf2dBgD yO/4oDMhLs8M48KEAPNCK+uSdK+Cjw1yJ9NYmOS/QKHN8AuGHeh8QYEMjeiDoPuXaGPS tl9tgbJuLrdjsuONuCI9AK+PfNcdnHlu1kApGol831Sbh6/GAt0gY36vXbG5/ObtNKBg Vm0fVXN/8F7s0dIa6FX9hs90jai5j6DV4v7R2X9uOhed3Pv/NCjWDrFEQ0nY53AophF/ gxOAqkaicJZkRIo01RJHv/XQCC2bdTbok2PtMp+ONuQoqiunhomWSTsFmY+W+YkVivCZ zuvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710372986; x=1710977786; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=uNLPEmLrYuypFvKNLV3xlGFW7PDRRyL15rDjWgaPTcE=; b=tKtynbEcW+Zkf2wTXbRdCraaOXOGPj5dJnuhosu29aeu4F7sS8Z97lDxsKrEDeuHYE mCOQbOjCZVqAafkcQe3UYfWkNU94m51pPsreb8HRAf5W/3ycUAQGeZH+Z2I91Tlgrtvk 4NRxXbtwuGP873QQ9EboqcdAFxGZTCYyiKHkRBIIc4WI4vCch/NW0WJLMOt7FBDfJ5Fp 4cqDjkwn/q0jDd3w/tDSy7D4HOgmkC+M8QM4kDuXbx9Vw5lqmOhWuhEnzfizebxUqQ9T mCyXNdu9ogxN8MVs4yOMyViUmVbdqNmak7EWWILD5g6RxNOU4q7cfiJqnDcBu9mKL5/t mJSw== X-Forwarded-Encrypted: i=1; AJvYcCVMIGrBN575cwyWyhVVpXgq5Ea+TWX7rv8ojkVsufEowYEWsyFz7Bup91eZMoZrkjtOwOxcOgmqnJVz10xewDYoOWU= X-Gm-Message-State: AOJu0Yy8Iulz8IqR9AtLTcoxUuG2mlKzwl7C/PD4VEFXZJ2A5X6Xzbbm gZunWt3iUzmJD0/A1jzKQT5PbLFFiYdCM4OMjHwdyboitapMnueq24uuKyeeGg== X-Google-Smtp-Source: AGHT+IF4ncAr/HVAOrE2PwcPciJR2TDuPrmAv+pFnf3AH4u0lFGpQjBCOJAI6kMhdna0sfrbzoFhNg== X-Received: by 2002:a17:902:c083:b0:1dd:a473:750e with SMTP id j3-20020a170902c08300b001dda473750emr76126pld.27.1710372985928; Wed, 13 Mar 2024 16:36:25 -0700 (PDT) Received: from [2620:0:1008:15:93dd:65bc:bbd0:d2ac] ([2620:0:1008:15:93dd:65bc:bbd0:d2ac]) by smtp.gmail.com with ESMTPSA id c8-20020a170903234800b001c407fac227sm181933plh.41.2024.03.13.16.36.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 16:36:25 -0700 (PDT) Date: Wed, 13 Mar 2024 16:36:24 -0700 (PDT) From: David Rientjes To: "Song, Xiongwei" cc: Chengming Zhou , "sxwjean@me.com" , Christoph Lameter , Pekka Enberg , Joonsoo Kim , Andrew Morton , Vlastimil Babka , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH v2] mm/slub: Simplify get_partial_node() In-Reply-To: Message-ID: <934f65c6-4d97-6c4d-b123-4937ede24a99@google.com> References: <20240312140532.64124-1-sxwjean@me.com> <38beee7c-aceb-4d59-ac79-e7e412a01588@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Stat-Signature: ibeyqsew1z4n4ste35tekwaieawu8o6t X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 47095140012 X-Rspam-User: X-HE-Tag: 1710372987-560877 X-HE-Meta: U2FsdGVkX181KECj4zKxlNSxheQD1v0/zNqvPASbmYK7Iepoe3lcxAew/YwJV4JNnwgvk/bu0OEOVnQn68A4ac0lKhM41eqPutJ5HB9ItS2MOvqrQDtrT9+MVUiznCts5MD1fES6PCfCtIXZeJfq+UiM7lzGn3jxYo4oMHjDCbu7b/KZ52GbQmLwGxTJrK6xWi6Ut8Je7KLAofM1IqxnKeY99net/lDRDD7tvqSEDVDHnrmfh/iOTF2Epd5AUJwIsMVn1a9CCcfxiQJhLGbnAI/5Lan0sy1W48A01bbTewpwLbNLbdjnXBoABlbgklv0kFRL6NFwRUSqnKiIiF+iawuECyOEhEjTWwnlkZ3YS3W6oYUtURu5nDs73tPgcTDSy1r+43CUFzr64iFS2mQ7hhnn9vXZRHuHf5w4l2yVSEDIE9DBgjGJKSggoam6NzBk0vnOG/owYLu8LmqDKwrHXswHruk8YilqbHP82k7/lwvh9//tGPViqPyyxDts/37E29rGZKT2d7MmZosChdm2r79LFgaCUua67HvM1L04QHuQpbBv7dQuRlHDmrzNuXGgw/RoJXyhyBwBAgR3Hut3YBxhx0mq3Gl919TJUupkBGvOwv1C7pqhvp3Dynj7TqKm5saegvy4RMOQ9by2KkFzKnZ1u78XCGMwNOwt3K4SFeq1pe2NpZpZuvcMixZCDbz6vsL9WcIRTla3hEeX3W3sXw/L++fmfLssXjJZzj8TyhEHPFgGDjDCorxSITsBtLR4Y0x117GfMIXLZUuuXWHEYrCXHIkvKLIYq6Bn0nMWCgfLP8jfpAZYn8m8ZrIjJFoaZzKjMGq6+TNIPnZNn0a2ZYA0cR5varoEE8gW3xl0HwrW5f4Zif1WzwfW1GBHzSQXq+UvYQiVpK5UAABRRo4TveBqNanxaibBTMnX6BYXbvY5M7uqSg4fL9622hbV8mT5zT+NlhK8fnQgkkejdBc rlaWpPjI IeNnw89frecxqjVGBYzK1r3AJ711XVwgKAdexJMKhGxvgQlNrSp1QgSEvID5yEyKQ+H0jINFVQ+ZjlbB0t+b+c3fMc6kz7DmwehAbYGC9TdP81xV1PSdFTMt75zwERTAJU4nPfXWsmdUqEemZSmY0Chd1EP7s46aWLS0xFDwZq0UPiN6N4EluSmi4fWci+krECPfaDqkS9IxTvfW1ajv6rY4QXMd1LLdN4iC171FKaQy2qE21ZgBlp9V5i461pOz5AnorUZnhzYBe830oLsdyuHMdDaCU8WZJZyCM6nj+TiYePnkdPo4U3uMvFSM+zVfV4cieMBTeaiiR56fJpMOyqXYlPnfYpRiewY86LNj0ndiyNUEZoXagRB71Ol8RQ69AWNjxwL7bO44p/4/9kUkEVtaCerBCRjmfPNC+J4602njpnw6A41t5GApAMzs0YwKtOM7yz9MhS3iBzWbSSKELlkIF2IHqJasR8dSdFULX8wUxOAOrquuuOq4DrZKSmFOdTT48Z8wO48Dy62x/laj0z1NLoGqfo8dt/1UPXM3IFvCeZC84Im10qIP0esdIpyZqJhvRAYJ4o4WukqxKbRtGsZtoaGkdk21fr8a9QddubIpDl68uqL1rS9PRjqBhOo6LSRbZ52I0hOlB9pzEtHGNmH6IlHcHga4vEFcMsOKKAqmIcJ0KWkVb3BW0PVUPnK2yFq9Yxp/HRp1gUQg= 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 Wed, 13 Mar 2024, Song, Xiongwei wrote: > > On 2024/3/12 22:05, sxwjean@me.com wrote: > > > From: Xiongwei Song > > > > > > Remove the check of !kmem_cache_has_cpu_partial() because it is always > > > false, we've known this by calling kmem_cache_debug() before calling > > > remove_partial(), so we can remove the check. > > > > > > Meanwhile, redo filling cpu partial and add comment to improve the > > > readability. > > > > > > Signed-off-by: Xiongwei Song > > > --- > > > Changes in v2: > > > - Use "#if IS_ENABLED(CONFIG_SLUB_CPU_PARTIAL)" to instead > > > "if (IS_ENABLED(CONFIG_SLUB_CPU_PARTIAL))" to fix build error. > > > (Thanks Chengming Zhou) > > > - Add __maybe_unused for partial_slabs to prevent compiler warning. > > > > > > v1: > > > https://lore.kernel.org/linux-kernel/20240311132720.37741-1-sxwjean@me.com/T/ > > > --- > > > mm/slub.c | 24 +++++++++++++----------- > > > 1 file changed, 13 insertions(+), 11 deletions(-) > > > > > > diff --git a/mm/slub.c b/mm/slub.c > > > index a3ab096c38c0..ab526960ee5b 100644 > > > --- a/mm/slub.c > > > +++ b/mm/slub.c > > > @@ -2588,7 +2588,7 @@ static struct slab *get_partial_node(struct kmem_cache *s, > > > { > > > struct slab *slab, *slab2, *partial = NULL; > > > unsigned long flags; > > > - unsigned int partial_slabs = 0; > > > + unsigned int __maybe_unused partial_slabs = 0; > > > > > > /* > > > * Racy check. If we mistakenly see no partial slabs then we > > > @@ -2620,19 +2620,21 @@ static struct slab *get_partial_node(struct kmem_cache *s, > > > if (!partial) { > > > partial = slab; > > > stat(s, ALLOC_FROM_PARTIAL); > > > - } else { > > > - put_cpu_partial(s, slab, 0); > > > - stat(s, CPU_PARTIAL_NODE); > > > - partial_slabs++; > > > + > > > + /* Fill cpu partial if needed from next iteration, or break */ > > > + if (IS_ENABLED(CONFIG_SLUB_CPU_PARTIAL)) > > > + continue; > > > + else > > > + break; > > > } > > > -#ifdef CONFIG_SLUB_CPU_PARTIAL > > > - if (!kmem_cache_has_cpu_partial(s) > > > - || partial_slabs > s->cpu_partial_slabs / 2) > > > + > > > +#if IS_ENABLED(CONFIG_SLUB_CPU_PARTIAL) > > > > Hmm, these two CONFIG_SLUB_CPU_PARTIAL look verbose to me :( > > > > How about using just one, maybe like this? > > > > diff --git a/mm/slub.c b/mm/slub.c > > index 2ef88bbf56a3..a018c715b648 100644 > > --- a/mm/slub.c > > +++ b/mm/slub.c > > @@ -2620,19 +2620,16 @@ static struct slab *get_partial_node(struct kmem_cache *s, > > if (!partial) { > > partial = slab; > > stat(s, ALLOC_FROM_PARTIAL); > > +#ifdef CONFIG_SLUB_CPU_PARTIAL > > } else { > > I don't like splitting "if...else..." up with preprocessor directives personally. It's messy for me. > I would agree, but the flow here actually seems like it's easier to follow if we are checking for CONFIG_SLUB_CPU_PARTIAL in multiple places :/