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]

 



On Fri, 25 Sep 2020 07:08:27 +0200, Dominique Martinet wrote:
> Jan Kratochvil wrote on Thu, Sep 24, 2020:
> > Copy-pasted it at the bottom of this mail. I do not know the talk but TL;DR
> > existing DWARF contains some dead DIEs - unused/deduplicated functions and also
> > -fdebug-types-section declarations/skeletons which can be removed or converted
> > to direct DIE references respectively. That way one could reduce the size like
> > DWZ does but without needing any new complicated support in DWARF consumers.
> 
> Ok, avoiding duplicate data makes sense there is quite a lot in there.

Duplicate data is what DWZ and -fdebug-types-section is about.

This other optimization - only draft-implemented for clang so far - removes
completely dead/unused/unusable information. That is debuginfo for functions
which were originally compiled but later removed as either unused or duplicate
with other existing functions. But their debuginfo cannot be easily removed so
it is only disabled by setting its debug info address to zero. Some approx.
calculation of possible size saving removing those debug info entries I wrote
in:
	https://git.jankratochvil.net/?p=massrebuild.git;a=blob_plain;f=dwarfredundant
I have calculated the saving on Fedora Rawhide *-debuginfo.rpm as 5.96%.
That is together with removing -fdebug-types-section skeletons. It is only
approximate as it does not calculate savings on removed abbreviations, OTOH it
does not calculate absolute DIE references as replacements. One can still
expect the real saving would be slightly bigger (better).

I do not think it matters much (does it?) but if someone wants to advocate DWZ
due to its size savings then this new optimization:
 * it saves the same amount of data as DWZ
 * it needs absolutely no new support in DWARF consumers
 * it has no overhead to separate *.debug files download;
   DWZ has 6.35% size of *-debuginfo.rpm overhead due to the DWZ common files.

Sure one could apply both this dead-DIE removal AND DWZ together which would
get some approx. 6%+7%=13% of *-debuginfo.rpm reduction.


> I don't have very much there but it does work well:
> # compsize  /usr/lib/debug/
> Processed 720 files, 2232 regular extents (2239 refs), 1 inline.
> Type       Perc     Disk Usage   Uncompressed Referenced  
> TOTAL       32%       74M         229M         230M       
> none       100%      644K         644K         644K       
> zstd        32%       73M         229M         229M       

Nice, thanks for checking it.


Jan
_______________________________________________
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