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

From: Pengfei Li
Date: Thu Sep 05 2019 - 09:51:28 EST


On Thu, Sep 5, 2019 at 8:25 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().
> >
> > Patch1 predefines the names of all types of kmalloc to save
> > the time spent dynamically generating names.
> >
> > The other 4 patches did some cleanup work.
> >
> > These changes make sense, and the time spent by new_kmalloc_cache()
> > has been reduced by approximately 36.3%.
> >
> > Time spent by
> > new_kmalloc_cache()
> > 5.3-rc7 66264
> > 5.3-rc7+patch 42188
>
> Note that the caches are created only once upon boot, so I doubt that

Thank you for your comments.
Yes, kmalloc-xxx are only created at boot time.

> these time savings (is it in CPU cycles?) will be noticeable at all.

Yes, it is CPU cycles.

> But diffstat looks ok, and it avoids using kmalloc() (via kasprintf()) to
> allocate names for kmalloc(), so in that sense I think it's worthwhile
> to consider. Thanks.
>

Thanks.

> > Pengfei Li (5):
> > mm, slab: Make kmalloc_info[] contain all types of names
> > mm, slab_common: Remove unused kmalloc_cache_name()
> > mm, slab: Remove unused kmalloc_size()
> > mm, slab_common: Make 'type' is enum kmalloc_cache_type
> > mm, slab_common: Make initializing KMALLOC_DMA start from 1
> >
> > include/linux/slab.h | 20 ---------
> > mm/slab.c | 7 +--
> > mm/slab.h | 2 +-
> > mm/slab_common.c | 101 +++++++++++++++++++++++--------------------
> > 4 files changed, 59 insertions(+), 71 deletions(-)
> >
>