Needed a bit of tweaking to get this benchmarked. Had to enable zstd in
kmod package and also apply a hack to the kernel package building. (See
attachment).

So, the installed compressed kernel modules are 27.1 MB compared to the
uncompressed 99.1 MB. The compressed extra modules are 103 MB compared
to the uncompressed modules at 296 MB.

linux-modules-5.13.0-8-generic installed size:
  zstd compressed modules:   27.1 MB
  normal uncompressed:       99.1 MB

linux-modules-extra-5.11.0-18-generic installed size:
  zstd compressed modules:   103.0 MB
  normal uncompressed:       206.0 MB

The downside is that compression for the deb and the initramfs does not
do so well. It seems that compressing a lot of uncompressed modules is
better than compressing already compressed modules:

linux-modules-5.13.0-8-generic deb size:
  zstd compressed modules:   19.9 MB
  normal uncompressed:       17.5 MB

linux-modules-extra-5.11.0-18-generic deb size:
  zsd compressed modules:    95.08 MB
  normal uncompressed:       48.70 MB  (I double checked the contents of the 
deb)
   
The initramfs size:
  zsd compressed modules:    49.77 MB
  normal uncompressed:       41.24 MB

For boot times, the kernel + zstd modules for ZSD and uncompressed
kernel modules is almost the same, zstd is fractionally faster but this
is within the margins of measured error.

*HOWEVER*, the zstd initramfs does not compress already compressed zstd
kernel modules well, so the initramfs size is actually larger, so this
impacts on the time to load the initramfs, so we end up with slower
boots with zstd module compression.

Attached is the data in a libre office spread sheet


** Attachment added: "raw test data"
   
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1932329/+attachment/5506240/+files/zstd-module-compression.ods

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1932329

Title:
  Benchmark if we can compress kernel modules

Status in linux package in Ubuntu:
  In Progress

Bug description:
  Symbol: MODULE_COMPRESS_ZSTD [=n]
  Type  : bool

  = Impacts to measure and observe =

  == Disk space ==

  * Inspect linux-modules-* and linux-modules-extra* deb package
  Installed-Size and Download-Size changes, i.e.

  $ apt show linux-modules-5.8.0-53-generic linux-modules-
  extra-5.8.0-53-generic  | grep -e Package: -e Size:

  Package: linux-modules-5.8.0-53-generic
  Installed-Size: 81.5 MB
  Download-Size: 15.5 MB

  Package: linux-modules-extra-5.8.0-53-generic
  Installed-Size: 215 MB
  Download-Size: 41.5 MB

  In theory, there should not be a significant change in the Download-
  size. It is desired that there is a significant reduction in
  Installed-Size. Modules take up about 300MB and normally one has upto
  three kernel version installed, resulting in about of 1GB of disk
  space that one constantly pays for.

  == Boot Speed ==

  In theory, boot speed may either improve or regress. It depends if
  disk IO is slower than decompression speed, meaning loading compressed
  modules is faster.

  Also one has to observe the changes in the initrd size. zstd(zstd)
  compression may result in slight growth, which shouldn't impact boot
  speed too much.

  = Outcomes =

  If installed size savings can be achieved without regressing bootspeed
  we should enable CONFIG_MODULE_COMPRESS_ZSTD=y by default.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1932329/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to