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.