On November 30, 2021 12:57 am, Ben Hutchings wrote:
> On Sun, 07 Nov 2021 03:52:13 +0200 Bohdan Horbeshko
> <bodqhro...@gmail.com> wrote:
>> Package: linux-image-5.14.0-2-amd64
>> Severity: minor
>> 
>> Dear Maintainer,
>> 
>> the Installed-Size of the package has occasionally grown up to 375 MB,
>> which is about 30% larger than several minor releases before. A kindful
>> anonymous person has collected some more information here:
>> https://www.linux.org.ru/forum/general/16628666?cid=16628797 , and found
>> out that virtually every module has been grown in size. So this is
>> likely related to compilation options, rather than to some added modules
>> as I suspected before.
>> 
>> Please investigate the actual reason and report if this can/would be
>> fixed in further packages, thanks.
> [...]
> 
> The linked thread mentioned floppy.ko as an exmaple. Comparing the
> versions I have installed here:
> 
> ~$ ls -l /lib/modules/*/kernel/drivers/block/floppy.ko
> -rw-r--r-- 1 root root 182555 Aug  3 07:50 
> /lib/modules/5.10.0-8-amd64/kernel/drivers/block/floppy.ko
> -rw-r--r-- 1 root root 196947 Nov 26 06:33 
> /lib/modules/5.15.0-2-amd64/kernel/drivers/block/floppy.ko
> 
> there's about a 14 KiB increase from 5.10 to 5.15.
> 
> The code and static data sizes are roughly the same, actually slightly
> smaller:
> 
> ~$ size /lib/modules/*/kernel/drivers/block/floppy.ko
>    text          data     bss     dec     hex filename
>   64213          4893   14660   83766   14736 
> /lib/modules/5.10.0-8-amd64/kernel/drivers/block/floppy.ko
>   63619          4836   16516   84971   14beb 
> /lib/modules/5.15.0-2-amd64/kernel/drivers/block/floppy.ko
> 
> The bss can be ignored as it doesn't take up disk space.
> 
> Listing the sections with "objdump -h", I see a new section in 5.15:
> 
> Idx Name          Size      VMA               LMA               File off  Algn
> [...]
>  26 .BTF          00002b58  0000000000000000  0000000000000000  00010c40  2**0
>                   CONTENTS, READONLY
> 
> That's a size of about 11 KiB, so most of the increase.
> 
> After that I compared *all* the modules installed by these versions:
> 
> ~$ du --bytes --summ /lib/modules/5.10.0-8-amd64/kernel
> 294650546 /lib/modules/5.10.0-8-amd64/kernel
> ~$ du --bytes --summ /lib/modules/5.15.0-2-amd64/kernel
> 371262312 /lib/modules/5.15.0-2-amd64/kernel
> 
> About a 73 MiB increase.
> 
> I calculated the total size of .BTF sections:
> 
> $ find /lib/modules/5.15.0-2-amd64/ -name '*.ko' | xargs objdump -h -j .BTF | 
> awk 'BEGIN { total = 0 } $2 == ".BTF" { total = total + strtonum("0x" $3) } 
> END { print total }'
> objdump: Warning: Separate debug info file 
> /usr/lib/modules/5.15.0-2-amd64/kernel/sound/usb/usx2y/snd-usb-us122l.ko 
> found, but CRC does not match - ignoring
> objdump: Warning: Separate debug info file 
> /usr/lib/modules/5.15.0-2-amd64/kernel/drivers/leds/leds-gpio.ko found, but 
> CRC does not match - ignoring
> objdump: Warning: Separate debug info file 
> /usr/lib/modules/5.15.0-2-amd64/kernel/fs/nls/nls_cp862.ko found, but CRC 
> does not match - ignoring
> 61693267
> 
> About 59 MiB, so again most of the increase.
> 
> It appears that BTF in modules was enabled in Linux 5.11 by
> <https://git.kernel.org/linus/5f9ae91f7c0dbbc4195e2a6c8eedcaeb5b9e4cbb>

possibly interesting in that context (I asked/posted the link in 
#debian-kernel a few days ago as well) - these BTF sections now actually 
reference the BTF info in the kernel image itself (as part of the 
deduplication of shared information), which makes the latter part of the 
ABI, and AFAICT this is not (yet?) tracked in Debian..

https://lore.kernel.org/all/1637926692.uyvrkty41j.astr...@nora.none/

an otherwise ABI compatible kernel upgrade thus has the potential to 
break module loading altogether, and I'd recommend disabling the split 
BTF feature for the time being unless you plan on bumping ABI for every 
kernel update anyway.

Reply via email to