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

From: Vlastimil Babka
Date: Mon Sep 09 2019 - 10:59:06 EST


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.

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?