[lkml]   [2021]   [Apr]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH v9] pgo: add clang's Profile Guided Optimization infrastructure
On Wed, Apr 07, 2021 at 02:17:04PM -0700, 'Bill Wendling' via Clang Built Linux wrote:
> From: Sami Tolvanen <>
> Enable the use of clang's Profile-Guided Optimization[1]. To generate a
> profile, the kernel is instrumented with PGO counters, a representative
> workload is run, and the raw profile data is collected from
> /sys/kernel/debug/pgo/profraw.
> The raw profile data must be processed by clang's "llvm-profdata" tool
> before it can be used during recompilation:
> $ cp /sys/kernel/debug/pgo/profraw vmlinux.profraw
> $ llvm-profdata merge --output=vmlinux.profdata vmlinux.profraw
> Multiple raw profiles may be merged during this step.
> The data can now be used by the compiler:
> $ make LLVM=1 KCFLAGS=-fprofile-use=vmlinux.profdata ...
> This initial submission is restricted to x86, as that's the platform we
> know works. This restriction can be lifted once other platforms have
> been verified to work with PGO.
> Note that this method of profiling the kernel is clang-native, unlike
> the clang support in kernel/gcov.
> [1]
> Signed-off-by: Sami Tolvanen <>
> Co-developed-by: Bill Wendling <>
> Signed-off-by: Bill Wendling <>
> Tested-by: Nick Desaulniers <>
> Reviewed-by: Nick Desaulniers <>
> Reviewed-by: Fangrui Song <>

Thanks for sending this again! I'm looking forward to using it.

Masahiro and Andrew, unless one of you would prefer to take this in your
tree, I figure I can snag it to send to Linus.

Anyone else have feedback?



Kees Cook

 \ /
  Last update: 2021-04-07 23:23    [W:0.197 / U:0.152 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site