On 09/09/2019 18.53, Pengfei Li wrote: > On Mon, Sep 9, 2019 at 10:59 PM Vlastimil Babka <vbabka@xxxxxxx> wrote: >>> /* >>> * 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. No, __initconst is correct, and should be kept. The string literals which the .name pointers point to live in .rodata, and we're copying the values of these .name pointers. Nothing refers to something inside kmalloc_info[] after init. (It would be a whole different matter if struct kmalloc_info_struct consisted of { char name[NN]; unsigned int size; }). Rasmus