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 A8113C61D97 for ; Wed, 22 Nov 2023 00:26:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3BB616B0516; Tue, 21 Nov 2023 19:26:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3447A6B0519; Tue, 21 Nov 2023 19:26:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1C01C6B0520; Tue, 21 Nov 2023 19:26:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 047CF6B0516 for ; Tue, 21 Nov 2023 19:26:27 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id D31A51CB47A for ; Wed, 22 Nov 2023 00:26:26 +0000 (UTC) X-FDA: 81483698772.07.95CCDC2 Received: from mail-vk1-f170.google.com (mail-vk1-f170.google.com [209.85.221.170]) by imf20.hostedemail.com (Postfix) with ESMTP id 2AE7B1C000C for ; Wed, 22 Nov 2023 00:26:24 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Whl3+d07; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.221.170 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700612785; 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=I6SlFQgfAbHnP562FfJkWr5EctvFZHTzloSc2FxzjM0=; b=ynmWz2i8eUNeA5RmNeHdmkGaKH/B9j6x3ZSMgryZIUEuxwneMXgFI9QToRHePMxwXT/TEp tQeg7EnkGOTiHUcbduiKcw5I8F14sZLQHi1CIKxpQ+qmjCwt+6tcaLLr9ZCMP7ihF4IZ/6 5gI51ffWpwstWCrvyNqPpbN60fO4ZR8= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Whl3+d07; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.221.170 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700612785; a=rsa-sha256; cv=none; b=Uy391KnWMhWbVW1jQsmy9tuU4nudEUE5c2CkXZRsOyDgZF9l6OgVvEux4uySG6LAdRwBcu 59CZTODRaxvq1pYc1AAILJ/UUb5C1IMtDz5y8SHuXmkpf2Zjj0zUpjEjFyjtHPsYojhqf1 KzatIWMsHJAIlvyD4LJpWc+Vnve5/go= Received: by mail-vk1-f170.google.com with SMTP id 71dfb90a1353d-4ac05ca3935so1993230e0c.1 for ; Tue, 21 Nov 2023 16:26:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700612784; x=1701217584; 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=I6SlFQgfAbHnP562FfJkWr5EctvFZHTzloSc2FxzjM0=; b=Whl3+d072nV25MNEa3D5iI/1vabn6TA3ZTpQT/1ufFvbI+lPY06bo90FbFs+E9TsJj gPZ7azZE6ZGl5EwrMjHp/AA1h5Xtf3T6QSUgaS+30qNre+i2C94H7FtQH4pLtQ/i3zjl 3hH8+EDJHL8KQ1ZJFLdCHxVTae6bSUFu9t7BiH0bo3/q/yRSL+FMiIAU/DewUQWU1kc1 AfyJ7Y9RplcXR+mIS+V6r/wxopsVheoO4FO+hdM7M9SfanS0gH6ZggWV50mlrl5COsKl /YxoV7O8D9f25YpVt8KnGP1D1N6a0wPvbdA9UhZWm2DZtT1KIbZpHUTQW0RzfgBI67E5 1AsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700612784; x=1701217584; 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=I6SlFQgfAbHnP562FfJkWr5EctvFZHTzloSc2FxzjM0=; b=maaDMQyi6cRGOfYyBkxP3bRI5D+371MufithGIAdSknie5YRr5tcIKcPueilfwXw1D g++rZsgGGXoZmNCU8aJNOGN6j9AmjjeeKKlrsw1UAv5ce6IShdBfIHEXV+C7ywVQKvbv a/QX3UCM0//ASNLNqsiblltB9JcdScbgElKwHCpT1LojKEI6bhxVGYOL+1nRy6SmYiQa UqaN0F38CuVo/jWS+hkiTBkCc7YcSK24ZXQV6wP+7NtRTrA7n0u2ZNdduMmATorQg0vY aGGoVlJQkvgbpgUYu7cZAAb1lp/1tcmspkSnidbYKvzbX2NEOjkUGi6ASW6PmCuIopLt ybQA== X-Gm-Message-State: AOJu0Ywv8CO0lufdkCp2/BtEja5dqM5/9xwQbQSCuk5YRv04KE2pe8GM gl6d0GSYsMeRIvYZe0u8av0Glku5nWLLsuglurI= X-Google-Smtp-Source: AGHT+IHSGwEXWP+fKT1/z0TeCOtjJ0b/m9MVR4pikWe6eK27nVISLA4rBz5IDKGV5NT81vvCXt4/G7FPBSZmCN1SfMg= X-Received: by 2002:a1f:dfc4:0:b0:49a:1a56:945c with SMTP id w187-20020a1fdfc4000000b0049a1a56945cmr1110334vkg.13.1700612784086; Tue, 21 Nov 2023 16:26:24 -0800 (PST) MIME-Version: 1.0 References: <20231102032330.1036151-1-chengming.zhou@linux.dev> <20231102032330.1036151-2-chengming.zhou@linux.dev> In-Reply-To: <20231102032330.1036151-2-chengming.zhou@linux.dev> From: Hyeonggon Yoo <42.hyeyoo@gmail.com> Date: Wed, 22 Nov 2023 09:26:13 +0900 Message-ID: Subject: Re: [PATCH v5 1/9] slub: Reflow ___slab_alloc() To: chengming.zhou@linux.dev Cc: vbabka@suse.cz, cl@linux.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, roman.gushchin@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Chengming Zhou Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 2AE7B1C000C X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: u85a396un1eg1ndww3sysub6frd79hsd X-HE-Tag: 1700612784-920713 X-HE-Meta: U2FsdGVkX19kINscEAn/xPr9xb9la2SQMDbK1iD5DiheKGZjrXGci5319zek7b3OJdZkzPMKM+VZQAJ1cvYaWB7ywQPSh9dAFiqoLmsi43EignxPnv5A+qElRvzCLfxiXpqXJZ/V4bssAaBkA1yGLC/4J2uzzpcZzgzVBuqom5mg5xkG2neXow6G5eKF9G2XYZhs4WJMPPJ1Qvyd7B52w1fX3Dk36DElKAZEq1lPqsKiqyV3BSn3gNxcyeR3rNWdaJKGnLjHR+EQoerITVdwCxmF+ZEBqn65DquA+8dSDtDwk1M/uHM5NTWv6EPjwwS6IhF36k2UA3dcJRrs6skR6tNDSrUXxezuaGLwZvysMjdQJzwtmvASuyXsZFu/QNKsW6N2Gbf00l3tDDhqziA/VL8mFfrYHT2N9tONRPy7f4dit5kfEoGKEMJSAMVnXzmPbEg5/cDQLs9NhEKWmfkQ6UR58KJRMrpt0RkkBwmrGwJaZBDwbM9CvQLk3Mm1zA+BwpLpEm3lXuSml4n0cvcqq97d/yU2wJTjw1cU1tsK7KiOyVANshRsZjNRmNqZQXvxfszcZx+Cg5WxrAjWu1KucMHvqqCZ3quixmcIJHrKGkD/BltB1O4EkkTuPPTN17ZLR82gh/ewzn+/1cCZxLbzneJa0g/6OdHJW3dQlBmsn/3OaJxF89YCfMxbsqOihgRZ2WswIdGMzPC+ICxRimrmVnSXA/541HDCS5iKF6y9RfEYpp5bMLpkjUZD4Cv6GkBQAYo3UfbXienPqVIyKjs+4B1rylHZap7L62+oUQQInqfbMWNDpvnqVzgURSPIH3LAuDwSAJ2lu+O8qZfdh+xYzxeVqV1Dm3NK0QXBsyRd70PV7CB47TLNbZG8RoQJUtEUMfxIitU8GxsU0Uz2D6y8HG8AHlnKSiXYQHvkJ3N0Qkb3bhAsL3Cc+pETvePpdlUxrqdx0H/nlkkNbIgml4C 8mRMhOcs o760M5PuzAXI2BiyEA9Lr8IqK5SptJzPaKhHue6iVx7S2kYenlgpIZAlrC7rhaaTN6WXax8T59h9eJk578FRgLXwKLl8Hax6lFLuaV3vVhyMNN3MHqbAcAIIEMk2IVUPf3G93ja9hbp4CZPziZNSLtEPypzKLAyqQg+L+SbuEMMbzDkRXig7RhY/xfkzNQMpCP7QCZN3fw5QoABubedhmxk0SlMPjWGxZVRPZQufaqdUp9tW6ArMGl/1xpl9069zF6q+0U7Wz6MotUAeZlcbPbf0iHCvfYegagThO8deRFaBUkRTd5A70zVH8AyhIXsHt5CSbIn8HqS/LBvApcgUWrBKFWWDuJ1SHd8S6jvFPmcEnGTA87Rm0cMMJZm/m49o6DDL/KVtSfjLKneTqa8QxzIVkt7+CoDZA2j+oTaceQ34zkwuepUp2fsRpRPybq8bsrhxQfoJ7kSdi1CA9X7zHpIsyscN6XlJLUiFIee2JQaZAGDAJNEGoFXXvz8bKhyc48zePGr8tQfO9L6I= 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, Nov 2, 2023 at 12:24=E2=80=AFPM wrote: > > From: Chengming Zhou > > The get_partial() interface used in ___slab_alloc() may return a single > object in the "kmem_cache_debug(s)" case, in which we will just return > the "freelist" object. > > Move this handling up to prepare for later changes. > > And the "pfmemalloc_match()" part is not needed for node partial slab, > since we already check this in the get_partial_node(). > > Signed-off-by: Chengming Zhou > Reviewed-by: Vlastimil Babka > Tested-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> > --- > mm/slub.c | 31 +++++++++++++++---------------- > 1 file changed, 15 insertions(+), 16 deletions(-) > > diff --git a/mm/slub.c b/mm/slub.c > index 63d281dfacdb..0b0fdc8c189f 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -3216,8 +3216,21 @@ static void *___slab_alloc(struct kmem_cache *s, g= fp_t gfpflags, int node, > pc.slab =3D &slab; > pc.orig_size =3D orig_size; > freelist =3D get_partial(s, node, &pc); > - if (freelist) > - goto check_new_slab; > + if (freelist) { > + if (kmem_cache_debug(s)) { > + /* > + * For debug caches here we had to go through > + * alloc_single_from_partial() so just store the > + * tracking info and return the object. > + */ > + if (s->flags & SLAB_STORE_USER) > + set_track(s, freelist, TRACK_ALLOC, addr)= ; > + > + return freelist; > + } > + > + goto retry_load_slab; > + } > > slub_put_cpu_ptr(s->cpu_slab); > slab =3D new_slab(s, gfpflags, node); > @@ -3253,20 +3266,6 @@ static void *___slab_alloc(struct kmem_cache *s, g= fp_t gfpflags, int node, > > inc_slabs_node(s, slab_nid(slab), slab->objects); > > -check_new_slab: > - > - if (kmem_cache_debug(s)) { > - /* > - * For debug caches here we had to go through > - * alloc_single_from_partial() so just store the tracking= info > - * and return the object > - */ > - if (s->flags & SLAB_STORE_USER) > - set_track(s, freelist, TRACK_ALLOC, addr); > - > - return freelist; > - } > - > if (unlikely(!pfmemalloc_match(slab, gfpflags))) { > /* > * For !pfmemalloc_match() case we don't load freelist so= that Looks good to me, Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> > -- > 2.20.1 >