[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:3.261 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site