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 1B8BDC001DE for ; Fri, 18 Aug 2023 11:47:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 98774280052; Fri, 18 Aug 2023 07:47:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9367E940053; Fri, 18 Aug 2023 07:47:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7FE7A280052; Fri, 18 Aug 2023 07:47:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 6F1FB940053 for ; Fri, 18 Aug 2023 07:47:52 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 36293C1154 for ; Fri, 18 Aug 2023 11:47:52 +0000 (UTC) X-FDA: 81137051184.22.67C1CDD Received: from mail-ua1-f47.google.com (mail-ua1-f47.google.com [209.85.222.47]) by imf12.hostedemail.com (Postfix) with ESMTP id 7A8644000A for ; Fri, 18 Aug 2023 11:47:50 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=WgFyAtGB; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf12.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.222.47 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=1692359270; 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=bAfIM5gpLJTpuPiiqsDtzWBiv40WoFry3jyTY/pzGKQ=; b=YNIj9JmrQOnYzrI61JvMIbob3qZAsNvyKWo5wvGCgejpuITDJgc2fYfcMJcCBhzELAUbik Z7VW3BtOHB9woT58g6GM+3KjnD222goMon5h6VRyisBilYV+luz9WMgSYTPzpWTzgSJdHu GAj5VwEGLG873t4tr3fxGjFB1uIG2Yw= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=WgFyAtGB; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf12.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.222.47 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692359270; a=rsa-sha256; cv=none; b=GLI56J2kROHEIJzTeV7Do6nfjlnk4tXxXtqdOJajCZ81jzy60vWI08rz2dZqiGFGJFyIUy rO0cJAge4Q8U0nT4jpchZpl0XfyHPFWM60g+V5C+9+z8IrItzITbNleEXc/DfEg85q7WUM s2Wwzt92UthcDXWwh9TvYeMiBB7P1BU= Received: by mail-ua1-f47.google.com with SMTP id a1e0cc1a2514c-79ae250266cso278564241.2 for ; Fri, 18 Aug 2023 04:47:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692359269; x=1692964069; 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=bAfIM5gpLJTpuPiiqsDtzWBiv40WoFry3jyTY/pzGKQ=; b=WgFyAtGBMxvr226dkfTHl5GKxVdN0h0kzbcnKkrDeKL5Ytm3ODeLGpBw3r8/9neIvl 4PgYqJcR3HIXVKyz/eDspWnSbTYXggMWmwAyYUxyZCLSrlcvE5jarpyyPh5an6FfsVbE rq2cpMAUGAhSXnFr1YtBtfa/uPtC+qYHNbhNnh3XH6JzDjDcBq9lltcDR16c/+8FjZKW kPkCPN4+2CWSUj4cBzqCw+OXpU1lqkDs+7yP0qnOEeprus4uBBXMrMPhRrAj+VK8IMAg 47KKkowdN1QOLpwwVHJ0UuDM+5S5//PjWoBGGfWbP2D3U0gqE4PVNJGU3qiSzzLsx0BG o7pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692359269; x=1692964069; 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=bAfIM5gpLJTpuPiiqsDtzWBiv40WoFry3jyTY/pzGKQ=; b=PdOG6jnrHooGAaWtZaL8GWZtjIuYeXnQMtaPPSTyzkV3DbiuyBzeXDZlBPxUjIFZgm VThF7358oZibYeVZRgFLv5v7kmRrIQSTr6T4BsKJc+CUC0coRrSd5SQ/E+kjGPNbR038 5kZz2QOC/nvzgq/jJbgd+fXQIJJiALLkLVb4nDjl9Pro2IO3qpTycv7S+GlLAxQ4cWfx UhIuNta1NlNZWpFqNMj7iVYBNOeJ5WMB3yqotlbnCQZvzpMSPe5iqvyzEJdk2gzM8twh ubB9KTVXCx3dQ0Cjq/YOyIP8domoqqqhduv5wTmSKHSA6L2+BparoGR/1OG7+2rZA9Mi Z9qA== X-Gm-Message-State: AOJu0Yx6EFTTTP9H6pOPgsNz1bmnOLd+Rg08aTE5qadfY8FeBLqLp9jX qggKbt+s4adzV8Nj/8UWSQ9Fb7taGbjFucQhntE= X-Google-Smtp-Source: AGHT+IGJrBuWc0TgeyRTJnSrv8cqlREWyOoz6U6qJj7S3f7Ew1q7aRXhto3Nmue2STFJvfLAkqstSuKdh0XXv93p+lc= X-Received: by 2002:a67:f5d6:0:b0:447:6965:7285 with SMTP id t22-20020a67f5d6000000b0044769657285mr3080841vso.9.1692359269361; Fri, 18 Aug 2023 04:47:49 -0700 (PDT) MIME-Version: 1.0 References: <20230808095342.12637-7-vbabka@suse.cz> <20230808095342.12637-8-vbabka@suse.cz> In-Reply-To: <20230808095342.12637-8-vbabka@suse.cz> From: Hyeonggon Yoo <42.hyeyoo@gmail.com> Date: Fri, 18 Aug 2023 20:47:37 +0900 Message-ID: Subject: Re: [RFC v1 1/5] mm, slub: fix bulk alloc and free stats To: Vlastimil Babka Cc: "Liam R. Howlett" , Matthew Wilcox , Christoph Lameter , David Rientjes , Pekka Enberg , Joonsoo Kim , Roman Gushchin , linux-mm@kvack.org, linux-kernel@vger.kernel.org, patches@lists.linux.dev Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: wzyftg3gc5se4zdqi5fee89joetecu59 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 7A8644000A X-HE-Tag: 1692359270-126321 X-HE-Meta: U2FsdGVkX18hlXJ6p3tSK3OznPACh7lCvtdk8RdOqJzaB0zBjEEmYiEKWZJFeJ5w/tK7W0SQHoWenkfSdmYR5ZwzhOrUtDS6A/lzNZZYnbFUtbIvydxmm8UN3YgMoZ6ibXRHpaZDNDw27dzd6LM82tMXztfZLJl8AC8CX9UlHp821NDqE8+PG6JB06puEzrShtX6Ck3GvUIMCq4/9g9UN2NE8y3GBp0OLa7PRg80yqaMJX+qGpMMUwE4+mXcfaIFDmRtH5G4cNBawi3GOba9/875MW+y7+w4BOSTUsKFj315yXgM+0Vv2NH/ulCg6xLltr1MmrPYG2Oj6+A5PhBJ9PVwoxt6HhAX4KPAxYtTFz8utLIzgaPqReUy+4njKW2DvNwe9x5PSNi6+bsobtZE/ymQyMhhwGwVhuvbFIUglK7kKEXDoDrtKjNE6C7TG7kPs/T8fPGmd7gJjEHP3nyVCudiCvYsQ9EVu4inxqZX7ofB896pVfbXXm8hDNG5lr+MzxBwm/9Gv3SlOjNomWRtssemmS07Sgj5+bmSOarorFGrZCFzerGn8SfINV83APIbA7uH4W/DUkMhUaQgt9G89926wt2IKxe10Wdbc19Rb7AwbUFZTjZumHnomzhG3B2PjOsQyn3O8ot/7OKUb/SS5dOVG7IvRVH6zwvJBQINHoxiI2st7L8xWMkpVxUFvl9zde4yoxiKHAI0sPUzXLhU96B0Lmdhi2+a8HFZx0IGnlJqq4ijYmHO1wdQkcbjqa1xaikkW6KxlBbFvR6MNjmAA+H30dqKPi63PnxsylDMjfxg86J1PZFY23JTxTERmCypCBGgC5TKAkLNYNnroJXboQaNMwTe0BRkNv9dJiAkNPEzu/SC9RiYDZ/mFwKu5C37EEcSmCiYKqqB010Jpf+bCJlKseNkUTn/Es+YB1pfC3uRRCsIyvG5pCKg1Zr9bC2BuA/tPpFMHLY/piwyF5o HbPL7+ld QqlQLISIRPnclJLXRvnOpbDL7AVys99soixPAkppWX0+4zJAvl6ab7a+A3acj80yYeGAZst3yEfVT3Mht4Nac47uPa8lrY+rEYWWFMZvZUuDKUY2ACvEil41Fb9gGUXRWMckPMVJVohaGkBM5h2Lges6AVY9ksG0+U2xd6zt5JHKFHieE5HnvdPeTfo2ooREdLiywb0LEHloj2fz7+9RCCwQKCsv64gR4QJsBtRvZW7HKCAaB7TY+xQPCsUKCz6XutmmrWPKXZST9GuhV6gr3vh65XxeZXstYPed7ItWMr8wCKl7a21lnuY1Cmx5ZS37GjQx+PefUtWAna2nokW12prxjZCkfH1UEl9b9V4i4L/WcpEioMyUrVDXM4e8XE/JoR1dN 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: On Tue, Aug 8, 2023 at 6:53=E2=80=AFPM Vlastimil Babka wro= te: > > The SLUB sysfs stats enabled CONFIG_SLUB_STATS have two deficiencies > identified wrt bulk alloc/free operations: > > - Bulk allocations from cpu freelist are not counted. Add the > ALLOC_FASTPATH counter there. > > - Bulk fastpath freeing will count a list of multiple objects with a > single FREE_FASTPATH inc. Add a stat_add() variant to count them all. > > Signed-off-by: Vlastimil Babka > --- > mm/slub.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/mm/slub.c b/mm/slub.c > index e3b5d5c0eb3a..a9437d48840c 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -341,6 +341,14 @@ static inline void stat(const struct kmem_cache *s, = enum stat_item si) > #endif > } > > +static inline void stat_add(const struct kmem_cache *s, enum stat_item s= i, int v) > +{ > +#ifdef CONFIG_SLUB_STATS > + raw_cpu_add(s->cpu_slab->stat[si], v); > +#endif > +} > + > + > /* > * Tracks for which NUMA nodes we have kmem_cache_nodes allocated. > * Corresponds to node_state[N_NORMAL_MEMORY], but can temporarily > @@ -3776,7 +3784,7 @@ static __always_inline void do_slab_free(struct kme= m_cache *s, > > local_unlock(&s->cpu_slab->lock); > } > - stat(s, FREE_FASTPATH); > + stat_add(s, FREE_FASTPATH, cnt); Should bulk free slowpath also be counted in the same way? > } > #else /* CONFIG_SLUB_TINY */ > static void do_slab_free(struct kmem_cache *s, > @@ -3978,6 +3986,7 @@ static inline int __kmem_cache_alloc_bulk(struct km= em_cache *s, gfp_t flags, > c->freelist =3D get_freepointer(s, object); > p[i] =3D object; > maybe_wipe_obj_freeptr(s, p[i]); > + stat(s, ALLOC_FASTPATH); > } > c->tid =3D next_tid(c->tid); > local_unlock_irqrestore(&s->cpu_slab->lock, irqflags); > -- > 2.41.0 >