From: Dennis Zhou <dennis@kernel.org>
To: Baoquan He <bhe@redhat.com>
Cc: linux-kernel@vger.kernel.org, Tejun Heo <tj@kernel.org>,
Christoph Lameter <cl@linux.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org, Pekka Enberg <penberg@kernel.org>,
David Rientjes <rientjes@google.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Vlastimil Babka <vbabka@suse.cz>,
Roman Gushchin <roman.gushchin@linux.dev>,
Hyeonggon Yoo <42.hyeyoo@gmail.com>
Subject: Re: [PATCH 8/8] mm/slub, percpu: correct the calculation of early percpu allocation size
Date: Mon, 24 Oct 2022 10:03:33 -0700 [thread overview]
Message-ID: <Y1bFZZNxP5EkEwtX@fedora> (raw)
In-Reply-To: <20221024081435.204970-9-bhe@redhat.com>
On Mon, Oct 24, 2022 at 04:14:35PM +0800, Baoquan He wrote:
> SLUB allocator relies on percpu allocator to initialize its ->cpu_slab
> during early boot. For that, the dynamic chunk of percpu which serves
> the early allocation need be large enough to satisfy the kmalloc
> creation.
>
> However, the current BUILD_BUG_ON() in alloc_kmem_cache_cpus() doesn't
> consider the kmalloc array with NR_KMALLOC_TYPES length. Fix that
> with correct calculation.
>
> Signed-off-by: Baoquan He <bhe@redhat.com>
> Cc: Christoph Lameter <cl@linux.com>
> Cc: Pekka Enberg <penberg@kernel.org>
> Cc: David Rientjes <rientjes@google.com>
> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Vlastimil Babka <vbabka@suse.cz>
> Cc: Roman Gushchin <roman.gushchin@linux.dev>
> Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
> ---
> mm/slub.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/mm/slub.c b/mm/slub.c
> index 157527d7101b..8ac3bb9a122a 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -4017,7 +4017,8 @@ init_kmem_cache_node(struct kmem_cache_node *n)
> static inline int alloc_kmem_cache_cpus(struct kmem_cache *s)
> {
> BUILD_BUG_ON(PERCPU_DYNAMIC_EARLY_SIZE <
> - KMALLOC_SHIFT_HIGH * sizeof(struct kmem_cache_cpu));
> + NR_KMALLOC_TYPES * KMALLOC_SHIFT_HIGH *
> + sizeof(struct kmem_cache_cpu));
>
> /*
> * Must align to double word boundary for the double cmpxchg
> --
> 2.34.1
>
Acked-by: Dennis Zhou <dennis@kernel.org>
Thanks,
Dennis
next prev parent reply other threads:[~2022-10-24 17:03 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-24 8:14 [PATCH 0/8] Cleanup and optimization patches for percpu Baoquan He
2022-10-24 8:14 ` [PATCH 1/8] mm/percpu: remove unused pcpu_map_extend_chunks Baoquan He
2022-10-24 16:51 ` Dennis Zhou
2022-10-24 8:14 ` [PATCH 2/8] mm/percpu: use list_first_entry_or_null in pcpu_reclaim_populated() Baoquan He
2022-10-24 10:17 ` kernel test robot
2022-10-24 16:52 ` Dennis Zhou
2022-10-25 3:11 ` [PATCH v2 " Baoquan He
2022-10-24 8:14 ` [PATCH 3/8] mm/percpu: Update the code comment when creating new chunk Baoquan He
2022-10-24 16:54 ` Dennis Zhou
2022-10-24 8:14 ` [PATCH 4/8] mm/percpu: add comment to state the empty populated pages accounting Baoquan He
2022-10-24 16:56 ` Dennis Zhou
2022-10-25 3:47 ` Baoquan He
2022-10-25 3:45 ` [PATCH v2 " Baoquan He
2022-10-24 8:14 ` [PATCH 5/8] mm/percpu: replace the goto with break Baoquan He
2022-10-24 17:00 ` Dennis Zhou
2022-10-24 8:14 ` [PATCH 6/8] mm/percpu.c: remove the lcm code since block size is fixed at page size Baoquan He
2022-10-24 17:00 ` Dennis Zhou
2022-10-24 8:14 ` [PATCH 7/8] mm/percpu: remove unused PERCPU_DYNAMIC_EARLY_SLOTS Baoquan He
2022-10-24 17:03 ` Dennis Zhou
2022-10-24 8:14 ` [PATCH 8/8] mm/slub, percpu: correct the calculation of early percpu allocation size Baoquan He
2022-10-24 13:52 ` Hyeonggon Yoo
2022-10-24 17:03 ` Dennis Zhou [this message]
2022-11-06 20:56 ` Vlastimil Babka
2022-11-07 4:35 ` Baoquan He
2022-11-07 7:20 ` Dennis Zhou
2022-11-07 8:23 ` Baoquan He
2022-10-24 17:09 ` [PATCH 0/8] Cleanup and optimization patches for percpu Dennis Zhou
2022-11-08 7:05 ` Dennis Zhou
2022-11-08 9:14 ` Baoquan He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y1bFZZNxP5EkEwtX@fedora \
--to=dennis@kernel.org \
--cc=42.hyeyoo@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=bhe@redhat.com \
--cc=cl@linux.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=roman.gushchin@linux.dev \
--cc=tj@kernel.org \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.