On Thu, Nov 15, 2018 at 09:39:57AM +0100, Michal Hocko wrote: > On Wed 14-11-18 15:00:53, Andrew Morton wrote: > > #define EXPORT_SYMBOL_SELFTEST EXPORT_SYMBOL_GPL > > > > then write a script which checks the tree for usages of the > > thus-tagged symbols outside tools/testing and lib/ (?) > > and then yell at people? We can try it out of course. The namespace > would be quite clear and we could document the supported usage pattern. > We also want to make EXPORT_SYMBOL_SELFTEST conditional. EXPORTs are not > free and we do not want to add them if the whole testing infrastructure > is disabled (assuming there is a global one for that). How about adding #ifdef CONFIG_VMALLOC_TEST int run_internal_vmalloc_tests(void) { ... } EXPORT_SYMBOL_GPL(run_internal_vmalloc_tests); #endif to vmalloc.c? That would also allow calling functions which are marked as static, not just functions which aren't exported to modules.