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.
[1] https://lore.kernel.org/all/[email protected]/
Fixes: c64e38ed88d1 ("mm/slab: enable slab allocation tagging for kmalloc and friends")
Fixes: ea7b8933f21b ("mempool: hook up to memory allocation profiling")
Fixes: 576477564ede ("mm: vmalloc: enable memory allocation profiling")
Signed-off-by: Randy Dunlap <[email protected]>
Reported-by: Stephen Rothwell <[email protected]>
Closes: https://lore.kernel.org/all/[email protected]/
Cc: Jonathan Corbet <[email protected]>
Cc: [email protected]
Cc: Andrew Morton <[email protected]>
Cc: Kent Overstreet <[email protected]>
Cc: Suren Baghdasaryan <[email protected]>
---
a. Suren, Kent, feel free to correct my comments on memory profiling.
I haven't read the documentation in a few weeks.
b. There are some instances of the kernel-doc function name including
"_noprof". Suren is correcting those cases so that all _noprof warnings
will be resolved.
scripts/kernel-doc | 1 +
1 file changed, 1 insertion(+)
diff -- a/scripts/kernel-doc b/scripts/kernel-doc
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -1723,6 +1723,7 @@ sub dump_function($$) {
$prototype =~ s/__must_check +//;
$prototype =~ s/__weak +//;
$prototype =~ s/__sched +//;
+ $prototype =~ s/_noprof//;
$prototype =~ s/__printf\s*\(\s*\d*\s*,\s*\d*\s*\) +//;
$prototype =~ s/__(?:re)?alloc_size\s*\(\s*\d+\s*(?:,\s*\d+\s*)?\) +//;
$prototype =~ s/__diagnose_as\s*\(\s*\S+\s*(?:,\s*\d+\s*)*\) +//;
On Mon, Mar 25, 2024 at 10:41 PM Randy Dunlap <[email protected]> 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.
>
> [1] https://lore.kernel.org/all/[email protected]/
>
> Fixes: c64e38ed88d1 ("mm/slab: enable slab allocation tagging for kmalloc and friends")
> Fixes: ea7b8933f21b ("mempool: hook up to memory allocation profiling")
> Fixes: 576477564ede ("mm: vmalloc: enable memory allocation profiling")
> Signed-off-by: Randy Dunlap <[email protected]>
> Reported-by: Stephen Rothwell <[email protected]>
> Closes: https://lore.kernel.org/all/[email protected]/
> Cc: Jonathan Corbet <[email protected]>
> Cc: [email protected]
> Cc: Andrew Morton <[email protected]>
> Cc: Kent Overstreet <[email protected]>
> Cc: Suren Baghdasaryan <[email protected]>
Tried it out and didn't see the warnings anymore. Thanks Randy!
Tested-by: Suren Baghdasaryan <[email protected]>
> ---
> a. Suren, Kent, feel free to correct my comments on memory profiling.
> I haven't read the documentation in a few weeks.
>
> b. There are some instances of the kernel-doc function name including
> "_noprof". Suren is correcting those cases so that all _noprof warnings
> will be resolved.
>
> scripts/kernel-doc | 1 +
> 1 file changed, 1 insertion(+)
>
> diff -- a/scripts/kernel-doc b/scripts/kernel-doc
> --- a/scripts/kernel-doc
> +++ b/scripts/kernel-doc
> @@ -1723,6 +1723,7 @@ sub dump_function($$) {
> $prototype =~ s/__must_check +//;
> $prototype =~ s/__weak +//;
> $prototype =~ s/__sched +//;
> + $prototype =~ s/_noprof//;
> $prototype =~ s/__printf\s*\(\s*\d*\s*,\s*\d*\s*\) +//;
> $prototype =~ s/__(?:re)?alloc_size\s*\(\s*\d+\s*(?:,\s*\d+\s*)?\) +//;
> $prototype =~ s/__diagnose_as\s*\(\s*\S+\s*(?:,\s*\d+\s*)*\) +//;