lkml.org 
[lkml]   [2021]   [Jan]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH] pgo: add clang's Profile Guided Optimization infrastructure
    On Fri, Jan 22, 2021 at 2:34 AM Nick Desaulniers
    <ndesaulniers@google.com> wrote:
    >
    > On Wed, Jan 20, 2021 at 6:21 PM Sedat Dilek <sedat.dilek@gmail.com> wrote:
    > >
    > > Hi,
    > >
    > > When I looked through the code I wondered why we do not add a
    > > "CONFIG_PGO_CLANG_PROFDATA" which can be helpful when doing the PGO
    > > rebuild with a vmlinux.profdata.
    > >
    > > This introduces a "PGO_PROFDATA" to turn on/off to pass
    > > "-fprofile-use=vmlinux.profdata" (see CFLAGS_PGO_CLANG_PROFDATA in
    > > top-level Makefile).
    > >
    > > If we turn off via "PGO_PROFILE := n" in several Makefiles - we should
    > > do the same and add "PGO_PROFDATA := n" to the same Makefiles?
    > >
    > > Please see the attached diff.
    >
    > This is a good idea; something that I brought up in initial code
    > review (on github). Would it be ok with you to land the core first,
    > then follow up with this suggestion?
    >
    > Also, AutoFDO production builds are so incredibly similar to PGO
    > builds that I could see a possible path forward:
    > 1. land PGO upstream
    > 2. adds docs for AutoFDO
    > 3. consider a config for hardcoding the location of the profiling data
    > so that we don't need to specify it at the command line invocation of
    > make.
    >

    I made a v3 - with some small nits.
    The idea was to do the "PGO-rebuild" handling a bit easier.

    But as you say that can wait.

    Some personal notes:

    I will be very happy when people verify/confirm what's going on with
    PGO-rebuild + LLVM_IAS=1.
    As said GNU/AS and PGO-rebuild is fine.
    ( This seems to be independent of clang-12 or clang-11. )
    ( This seems to be independent of DWARF v4 or v5 enabled. )

    The benefit here I saw was a reduction in build-time of 00:30 seen
    from a total 04:30 when using a PGO-rebuilt Linux-kernel.
    Approx. 10%?

    This is not much compared to a ThinLTO + PGO optimized LLVM toolchain
    whcih saved here 40% of build-time.

    - Sedat -

    \
     
     \ /
      Last update: 2021-01-22 02:44    [W:21.906 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site