Re: [PATCH 1/5] mm, slab: Make kmalloc_info[] contain all types of names

From: Pengfei Li
Date: Mon Sep 09 2019 - 12:54:01 EST


On Mon, Sep 9, 2019 at 10:59 PM Vlastimil Babka <vbabka@xxxxxxx> wrote:
>
> On 9/3/19 6:04 PM, Pengfei Li wrote:
> > There are three types of kmalloc, KMALLOC_NORMAL, KMALLOC_RECLAIM
> > and KMALLOC_DMA.
> >
> > The name of KMALLOC_NORMAL is contained in kmalloc_info[].name,
> > but the names of KMALLOC_RECLAIM and KMALLOC_DMA are dynamically
> > generated by kmalloc_cache_name().
> >
> > This patch predefines the names of all types of kmalloc to save
> > the time spent dynamically generating names.
>
> As I said, IMHO it's more useful that we don't need to allocate the
> names dynamically anymore, and it's simpler overall.
>

Thank you very much for your review.

> > Signed-off-by: Pengfei Li <lpf.vector@xxxxxxxxx>
>
> Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
>
> > /*
> > * kmalloc_info[] is to make slub_debug=,kmalloc-xx option work at boot time.
> > * kmalloc_index() supports up to 2^26=64MB, so the final entry of the table is
> > * kmalloc-67108864.
> > */
> > const struct kmalloc_info_struct kmalloc_info[] __initconst = {
>
> BTW should it really be an __initconst, when references to the names
> keep on living in kmem_cache structs? Isn't this for data that's
> discarded after init?

You are right, I will remove __initconst in v2.