On Mon, Mar 25, 2024 at 10:41:49PM -0700, Randy Dunlap wrote: > Memory profiling introduces macros as hooks for function-level > allocation profiling[1]. Memory allocation functions that are profiled > are named like xyz_alloc() for API access to the function. xyz_alloc() > then calls xyz_alloc_noprof() to do the allocation work. > > The kernel-doc comments for the memory allocation functions are > introduced with the xyz_alloc() function names but the function > implementations are the xyz_alloc_noprof() names. > This causes kernel-doc warnings for mismatched documentation and > function prototype names. > By dropping the "_noprof" part of the function name, the kernel-doc > function name matches the function prototype name, so the warnings > are resolved. This turns out not to be enough. For example, krealloc() is currently undocumented. This is because we match the function name in EXPORT_SYMBOL() against the function name in the comment, and they don't match. This patch restores the documentation, although only for the python version of kernel-doc, and I'm pretty sure there's a better way to do it (eg building it into the export_symbol* regexes). I can turn this into a proper patch if this is the way to go, but for now it's just to illustrate the problem. diff --git a/scripts/lib/kdoc/kdoc_parser.py b/scripts/lib/kdoc/kdoc_parser.py index 062453eefc7a..bdfa698d5570 100644 --- a/scripts/lib/kdoc/kdoc_parser.py +++ b/scripts/lib/kdoc/kdoc_parser.py @@ -1176,11 +1176,15 @@ class KernelDoc: if export_symbol.search(line): symbol = export_symbol.group(2) + # See alloc_tags.h + symbol = symbol.removesuffix('_noprof') function_set.add(symbol) return if export_symbol_ns.search(line): symbol = export_symbol_ns.group(2) + # See alloc_tags.h + symbol = symbol.removesuffix('_noprof') function_set.add(symbol) def process_normal(self, ln, line):