On 5/7/25 13:27, Eugen Hristev wrote: > > > On 5/7/25 13:18, Thomas Gleixner wrote: >> >> $Subject: ... See >> >> https://www.kernel.org/doc/html/latest/process/maintainer-tip.html#patch-submission-notes >> >> On Tue, Apr 22 2025 at 14:31, Eugen Hristev wrote: >>> Add function to register irq info into kmemdump. >> >> What is irq info? Please explain explicitly which information is exposed >> and why. >> >>> >>> +void irq_kmemdump_register(void) >>> +{ >>> + kmemdump_register("irq", (void *)&nr_irqs, sizeof(nr_irqs)); >>> +} >>> +EXPORT_SYMBOL_GPL(irq_kmemdump_register); >> >> Are you going to slap a gazillion of those register a single variable >> functions all over the place? >> >> That's a really horrible idea. >> >> The obvious way to deal with that is to annotate the variable: >> >> static unsigned int nr_irqs = NR_IRQS; >> KMEMDUMP_VAR(nr_irqs); >> >> Let KMEMDUMP_VAR() store the size and the address of 'nr_irqs' in a >> kmemdump specific section and then kmemdump can just walk that section >> and dump stuff. No magic register functions and no extra storage >> management for static/global variables. >> >> No? > > Thank you very much for your review ! I will try it out. I have tried this way and it's much cleaner ! thanks for the suggestion. The thing that I am trying to figure out now is how to do something similar for a dynamically allocated memory, e.g. void *p = kmalloc(...); and then I can annotate `p` itself, it's address and size, but what I would also want to so dump the whole memory region pointed out by p. and that area address and size cannot be figured out at compile time hence I can't instantiate a struct inside the dedicated section for it. Any suggestion on how to make that better ? Or just keep the function call to register the area into kmemdump ? Thanks again, Eugen > > Eugen >> >> Thanks, >> >> tglx >