On Thu, Oct 31, 2024 at 12:12:30PM +0000, Richard W.M. Jones wrote:
> On Thu, Oct 31, 2024 at 12:36:28PM +0100, Jakub Jelinek wrote:
> > On Thu, Oct 31, 2024 at 11:26:23AM +0000, Peter Robinson wrote:
> > > I seem to remember firefox uses LTO+PGO for speed ups/
> > > 
> > > I wonder if we could provide some rpm macros and packaging guidelines
> > > to assist packagers in this process to make things more straight
> > > forward and less error prone? Is something like that a reasonable
> > > idea?
> > 
> > Depends.  Some packages like gcc, firefox and a few others already
> > have some configure or make (or whatever build system they use) options
> > to do the PGO build.  Those should just use what the upstream provides and
> > don't need any new rpm macros.
> > Others perhaps could make use of them, but I think only conversion of a
> > dozens+ of packages for PGO would reveal how those macros should look like
> > and what would be helpful and what wouldn't.
> > The running of a -fprofile-generate instrumented program creates
> > something.c.gcda etc. files and those need to be then in the tree built
> > with -fprofile-use.
> 
> Are the *.gcda files portable or must they be consumed by the exact
> same source / GCC combination?  What I'm asking is, can those be
> created "offline" and included later in the RPM build, even if the
> code changes in between?

They are dependent on the exact source and compiler options used to compile
them.  Basically, they add tons of counters for various events, like passing
through some control flow graph edge etc.  And obviously the
-fprofile-generate and -fprofile-use compilations need to agree what the
counters are for, so the source needs to have the same control flow graph,
same order of functions, ...

So no, you don't want to ship -fprofile-generate instrumented
binaries/libraries in binary rpms and somehow arrange for the *.gcda files
to be fed back to next build.

That is what AutoFDO intends to do (one profiles non-instrumented binaries,
which are then profiled and fuzzy matched to the new compilation).  AutoFDO
is significantly less tested than normal PGO and I'd strongly advise we
avoid that.

        Jakub

-- 
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to