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