Re: Schedule for Tuesday's FESCo Meeting (2023-01-03)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Miro Hrončok:

> * #2923 Re-vote for Change proposal: Add -fno-omit-frame-pointer to
>   default   (mhroncok, 17:06:26)
>   * LINK:
>     https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/230
>     is the implementation  (davide, 17:13:47)
>   * AGREED: APPROVED (+6,1,-1) This Change is implemented for Fedora
>     Linux 38 and we evaluate whether to retain it by Fedora Linux 40.
>     This Change must be implemented in a manner which packages are able
>     to trivially opt-out of retaining frame pointers during compilation
>     so that packages that take larger performance hits can easily
>     revert.  (mhroncok, 17:20:38)
>   * Change owners please coordinate the change with the Python
>     Maintainers before changing the defaults  (mhroncok, 17:21:20)

The change as voted simply does not work at a technical level because
-mno-omit-leaf-frame-pointer is an architecture-specific GCC option that
is not available on all Fedora architectures.  I don't think
-fno-omit-frame-pointer is well-exercised on s390x, so I wouldn't want
to use it there, either.

Is it safe to assume this change (as voted) is actually intended for
x86_64 only, in both directions?  Specifically, that opting out will
*not* disable frame pointers on aarch64 and ppc64le (where it would
result in an ABI break)?

We should not ask package maintainers to debug i686 build failures
related to inline assembly and register shortage.  (On i686, it's
impossible to make certain system calls while preserving a frame
pointer.)  As far as I understand it, building i686 with frame pointers
isn't in scope for the change, either, because it does not further its
goals.

Regarding leaf functions, on typical workloads, a significant fraction
of the profiling samples will be in glibc string functions, which do not
have frame pointers.  So any profiler has to cope with leaf functions
with frame pointers anyway.  As a result, do we really need the
-mno-omit-leaf-frame-pointer option?

On aarch64, we should not use -mno-omit-leaf-frame-pointer because there
is no skipped frame problem with backtraces: the link register (x30) can
be read directly even in leaf functions.  The ABI only mandates frame
pointers for non-leaf functions.  On ppc64le, GCC does not even support
-mno-omit-leaf-frame-pointer.

This is why I think the change is implicitly just for x86_64.

Does anybody know how this change invalidates Fedora binaries as a
reference for DWARF performance work?  Do the generated .eh_frame data
change materially once frame pointers are in use?

Thanks,
Florian
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux