Received: by 2002:ab2:5c0e:0:b0:1ef:a325:1205 with SMTP id i14csp61966lqk; Wed, 13 Mar 2024 16:36:35 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUBhgX0b+i2Tdf6T7XwILRE4uqaVofOj2h3c37kHLvmjNbe6JLvK4rUK32AJIoEb2dpf/tUK8IH7J4K+5yNxlOcH3cxGRvMcdhXgneEoQ== X-Google-Smtp-Source: AGHT+IEmdecgianfXy0snKU32uVcDAEy4ZwNiG52/bze36cID8MZWEnrvBxwC9k8UqIkmmzbR1f9 X-Received: by 2002:a17:906:2bc7:b0:a46:5e1b:58a3 with SMTP id n7-20020a1709062bc700b00a465e1b58a3mr24892ejg.35.1710372995369; Wed, 13 Mar 2024 16:36:35 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710372995; cv=pass; d=google.com; s=arc-20160816; b=cRYUyt6G9Zw4fzupmENrF9MpU91KHjn08S/W7fbQ8LkwR0J6A+SKfdsoLmuzVJGGOp X2vk2mU/hsTfEv3PO6Vxr1QRg2h+gBHAC4JnznKgn/cOQ8iQ2Ak8R3xojihW3WylLWBK hSRCkEfcr60zMRObw2o7KLl/oIYK/z3kn0JM4glJWiYCQnHTtaSGE3C8WPcdfj9cTSbo nhtSM27GORNPyOF0NWNEDOl3yKlkq8RMmG+MIYAoikV2m5DHpFUgKqmfRmEe0DxtuV5N TWI/OQMCSgMoHY7VNxpvKVBU2Reo5D0krtkgU5bfyfsdBo5LEW3UJNfizWznzr+2jATc ufog== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:message-id:in-reply-to:subject:cc:to:from:date :dkim-signature; bh=uNLPEmLrYuypFvKNLV3xlGFW7PDRRyL15rDjWgaPTcE=; fh=q8TJMcRoc8lxmCDxP6tdhX2w3B3jx8Y/mUuodr6UFiM=; b=w7BP+0JOSta30wyUf6hlI7UUyME09zq3y6A+n47Fef9sybBI6rWEOhdhvKIHUTAUBh zv+PfV3n56LomLzjoxwJLVjJ9Gdd6H7hpxzW6z+2HUAGwxxpDqf7eGVzVikqqnCvnQqa 0AjoiLXXMFfcFctP9QuHlLvHZ5q3NLiX8j2YIyuPnuBYXsB4x9ng/8azHOjBo+pPLpwO KAeyGJwvQ7/HcKSUQuHQs8LCH21KXLNr89KPjC/GSwxW7WOyL4gGolsw33yQOlioYauc 53fC0IJqMCv6dy4rtSOEPkT4PKfvBiysPC26/iDhbcEaPwXSARdzkR6mLt1RdCs+Tmez +ZzQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=UBHzTzuW; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-102644-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-102644-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id pv27-20020a170907209b00b00a46599fb9f1si122434ejb.669.2024.03.13.16.36.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 16:36:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-102644-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=UBHzTzuW; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-102644-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-102644-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id DF2D81F2202D for ; Wed, 13 Mar 2024 23:36:34 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 41F8C5D72F; Wed, 13 Mar 2024 23:36:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="UBHzTzuW" Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.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 E32E21A38DB for ; Wed, 13 Mar 2024 23:36:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710372988; cv=none; b=dHtHfemE7iAWGNb0x8UnkzqhwZxalypga7rD3aqfSOrmkmn1lpTHtnoAv57paVEKUlGyp2LcxbHKYUQDZL2FgEFQ+mhjnBNKckJxW6ekv4o+33bow67TDYaeHL9F4V3+OHvUTMPmuJszNpdBNI4rBIVJE0Hg9iQe6KL70YPZ8FA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710372988; c=relaxed/simple; bh=PCCrxOojTZiAdc3yUXFJX/6veg80HcX3d/J+ubH1I5Q=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References: MIME-Version:Content-Type; b=Qok1KcCYjrHsVAeVAxK9xCo9phgOrbmSjYFROIIotFueKOYruzyMJ+Z5gsQUuPIcEgpZzALGkDnlheXXf5PkB6hS7i7EYUkJb23ugA+PF4vIviCu6mbJETcgC8Bn/tyjZ28bxen0dFU++d/4ffjm9AwcqbrUHy+H0a1Y/7SYKKI= ARC-Authentication-Results:i=1; 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=UBHzTzuW; arc=none smtp.client-ip=209.85.214.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 Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1dd80777328so28205ad.1 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=vger.kernel.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=UBHzTzuWxTFDpVRgYOWFSLKiO6obYTJscdatQYkX6+x1frBP6CGy6H+nhbJnJYDUAM AN8BZHnaA1fuCsY56FGm5uGgvky1xl0u/CMnaGPTGRGC7nFgrtAG+7MDj3JIc/6DJOBz zeA6HKMRkhroKuaSu0Cou07bNpXzjaq7JXgCKekwrFaClL/y7elUOzJfhj1CgAZSl3ZP uQBNayoxBSwzwPLRRq5bz/qDNni5Kc8cIrN7IVrI0lYPeJrjhnKSgdG6zHkDiESyGRM4 SAKjUBN9T9y7qmm6PbpXTPDhRWDXaK96XAvIHRl1XCZORNOPRC5CYRTBVgoxoBRx7aK8 djBA== 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=e97S0yx2WE7vnnjwzpkRZ32aT8cO/UBpAvwgR5WdND5RZ/4P9FK9hxuxm03a2hz0fL akqnEXrY3JD3jUC6h8K9Y57kdouEvyZ8U8S3R9RZd7SScfTLQz3fZpMaZGQBNczPH5Ow EvkBI3PV2iI9ZGwdo1fjhJssp4pEuC2W8HRqCFilqhJbhobpG79yvo/pZ4OD7dVnk5Jm T1zmN4GqFRhp3EiJVEg2l6atCBkJnjocfXgZUTd44SaVY3dFhmxgEUCjK7I+mz3Kirv8 uCPNRU7soWmBlZbG6Mj6YIbhYuWmo5HniBNc8SNavmYvp3j4WjY1GxXwFn46/MAvDn13 oD5w== X-Forwarded-Encrypted: i=1; AJvYcCU3hgPYZswzOJylxiEd+CKNWg1+L9Fr75pQ9NU5WqEXB0ty5vaGSpLeZyJKhk9/tImF5KIj2ZCBSYGDJevY2e9o72q1x3PtkB/82z5V X-Gm-Message-State: AOJu0YyDbiA4WjB3TuBT8Iu+7vSSZSrpIZPEKb/8BPXpcO/YEZethFU8 6FJjxOyVenOLkbCnRsAfUIKSIWKmxzMvWkbrQZNibUk9FwhEHnR1LriGgCnvrg== 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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII 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 :/