Re: is there an efficient module_is_builtin() test ?
On Tue, 09 Mar 2021 12:55:14 -0700, jim.cro...@gmail.com said: > To use the index, I need _sites[], and that only works > for builtin-module's callsites. For loaded modules, I can/have > added a pointer to the section into module load_info, giving me > the base I will need for the ! builtin branch. > > I just need a not expensive is-it-builtin (modref) One way to sidestep it is to stick in an EXPORT_SYMBOL(dyndbg_sites) in the .c file you're defining it, and let the module loader do all the heavy lifting for you. Not sure if some license purist would insist on EXPORT_SYMBOL_GPL instead - the difference will only matter for out-of-tree non-GPL modules. An slightly uglier solution is to do something like #if defined(MODULE) #define FIND_DEBUG /* code to find via load_info */ #else #define FIND_DEBUG /* code to load _site directly */ #endif which you should probably stick into a suitable .h file, and then stick your newly defined FIND_DEBUG where you need the magic happen (probably in a .h file as well) ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
is there an efficient module_is_builtin() test ?
Im trying to reduce memory used by internal tables built into DYNAMIC_DEBUG the main savings available is in the per pr_debug* callsite data: modname, filename, funcname. I have segregated those fields to a new __dyndbg_sites section, described by struct _ddebug_site, and now refd by new ptr in struct _ddebug That new ptr enlarges the memory footprint, so I want to replace it with an integer index into the section / array. Existing padding could hold the index. To use the index, I need _sites[], and that only works for builtin-module's callsites. For loaded modules, I can/have added a pointer to the section into module load_info, giving me the base I will need for the ! builtin branch. I just need a not expensive is-it-builtin (modref) ___ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies