Re: F34 Change proposal: Debug Info Standardization (from DWZ to -fdebug-types-section) (System-Wide Change proposal)

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

 



I'm missing some good statistics.

> * DWZ advantage: On the whole Fedora distro it saves 3.3% (5GB of the
> 157GB distribution size)

What is this comparing? Is this the size of binary rpm or the
installation-on-disk footprint?

I would love to see a comparison of numbers for three things:
- raw debuginfo without dwz or -fdebug-types-section
- debuginfo with dwz (current approach)
- debuginfo with -fdebug-types-section

For each of those three categories both measures (rpm size and on-disk size)
would be useful. Could you provide numbers like this for some subset of packages
(20-30 packages that produce debuginfo would be enough to get a good measure).

I find that 3.3% number strange — it would mean that dwz is
essentially useless, but maybe I'm misunderstanding how it's defined.
I think we need to get some better understanding what the effects of
various approaches are before discussing which to pick.

Zbyszek


> ** If the 3.3% size increase is a concern I can implement a different
> optimization ([https://whova.com/embedded/session/llvm_202010/1193947/
> talk (2)]) as a GCC post-processing phase which would require no
> changes in any DWARF consumers.
> * DWZ disadvantage: DWZ has currently less support across consumers
> (LLDB, llvm-dwarfdump, binutils readelf)
> * DWZ disadvantage: DWZ requires 8x times more complicated (LoC count)
> support in consumers than -fdebug-types-section.
> * DWZ disadvantage: DWZ cannot update LLVM .debug_names index which
> can be generated only by clang (it cannot be regenerated later for
> DWZ-compressed file)
> * DWZ disadvantage: DWZ DWARF-5 support is a work-in-progress. DWZ has
> been blocking DWARF-5 for Fedora for 3.5 years and only after I have
> now proposed to drop DWZ Mark Wielaard has started porting DWZ to
> DWARF-5. It can be expected next DWARF extensions will remain
> unsupported again. Even currently there is no plan to support DWARF-5
> features used by clang which may need -fdebug-types-section for
> clang-built binaries or no size optimization of clang-built debug info
> at all.
> * DWZ disadvantage: Compilation (linking) requires for C++ up to 2x as
> big disk space (as DWZ is processing files after linker and DWZ is
> incompatible with -fdebug-types-section)
> * DWZ disadvantage: Compilation (linking) is slower
> 
> This proposed DWARF format was originally submitted already for Fedora
> 18 as [[Features/DebugTypesSections]].
> 
> == Benefit to Fedora ==
> * Better compatibility with existing debugging and tracing tools,
> primarily [https://lldb.llvm.org/ LLDB].
> * Less resource-intensive rebuilds of C++ packages (in disk space,
> memory requirements and compilation time).
> 
> == Scope ==
> * Proposal owners: It affects all packages generating *-debuginfo.rpm,
> that is compiled (not scripted) languages.
> * Other developers: Report any possible debuginfo incompatibility (unexpected).
> * Release engineering: [https://pagure.io/releng/issues #Releng issue
> number] (a check of an impact with Release Engineering is needed)
> * Policies and guidelines: All the needed changes should be done in
> [https://src.fedoraproject.org/rpms/redhat-rpm-config
> redhat-rpm-config]. The [https://src.fedoraproject.org/rpms/dwz dwz
> package] can be then retired.
> * Trademark approval: N/A (not needed for this Change)
> * Alignment with Objectives: The size differences are only for
> *-debuginfo.rpm which is outside of scope of the listed objectives.
> 
> 
> == Upgrade/compatibility impact ==
> As *-debuginfo.rpm have to exactly match NVRA of its binary package
> the compatibility is not relevant. Existing tools supporting DWZ will
> still support the DWZ file format in packages which have not been
> rebuilt.
> 
> == How To Test ==
> The change will update
> [https://src.fedoraproject.org/rpms/redhat-rpm-config
> redhat-rpm-config] by
> [https://people.redhat.com/jkratoch/redhat-rpm-config-fdebug-types-section.patch
> an -fdebug-types-section patch].
> 
> Then one can use rpmbuild to rebuild a package. For mock use
> -a|--addrepo with modified redhat-rpm-config.rpm (with increased
> NVRA). For packages already rebuilt in Koji nothing is needed.
> 
> Test programs like lldb and gdb if they still can print source code,
> function parameters, variables etc.
> 
> One should also verify integrated testsuites of tools like clang,
> lldb, gcc, binutils, gdb, elfutils or rpm are not regressing with the
> -fdebug-types-section option.
> 
> One can also compare *.debug files built with/without DWZ and/or
> -fdebug-types-section using
> [https://src.fedoraproject.org/rpms/libabigail libabigail] utility
> dwdiff but that will be rather done by the change owner.
> 
> == User Experience ==
> No user visible change. This affects what tools can developers use.
> 
> == Dependencies ==
> none
> 
> == Contingency Plan ==
> * Contingency mechanism: Revert the change in
> [https://src.fedoraproject.org/rpms/redhat-rpm-config
> redhat-rpm-config]. Fedora can continue using DWZ, just some
> debugging/tracing tools will stay incompatible.
> * Contingency deadline: beta freeze
> * Blocks release? No
> * Blocks product? N/A
> 
> == Documentation ==
> * [http://www.dwarfstd.org/doc/DWARF5.pdf DWARF-5] E.2 Using Type Units
> * [https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#index-fdebug-types-section
> GCC -fdebug-types-section]
> 
> 
> 
> 
> -- 
> Ben Cotton
> He / Him / His
> Senior Program Manager, Fedora & CentOS Stream
> Red Hat
> TZ=America/Indiana/Indianapolis
> _______________________________________________
> 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
_______________________________________________
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




[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