Skip to content

kernel build time and size data (comparison of esstra with non-esstra builds) #41

@tbird20d

Description

@tbird20d

Here is some data from my tests performing Linux kernel builds with esstra.

My machine is a Dell desktop (x86_64), with 16 cores, 32G RAM, and 188G of open space on a 1.8T drive.
I was building just the statically linked kernel binary image (vmlinux), without building modules.
I used the config for my desktop machine, derived from the default Ubuntu 24.04 x86_64 config.

A kernel build without esstra installed takes:
1st run:
real 10m59.139s
user 110m50.858s
2nd run:
real 11m4.708s
user 110m52.484s
3rd run:
real 11m0.665s
user 110m55.890s

Average:
real 11M1s (661s)
user 110m53s (6603s)

A kernel build with esstra installed took:
1st run:
real 12m29.011s
user 114m21.491s
2nd run:
real 11m53.083s
user 114m50.584s
3rd run:
real 11m48.747s
user 114m46.115s

Average:
real 12m3s (723s)
user 114m39 (6879s)

Kernel build overhead was approximately:
9.4% real time
4.2% cpu time (in user space)

For output file size that included esstra data, I got the following numbers:
(all sizes in bytes, unless shown otherwise with a suffix)

without esstra data:
- vmlinux: 453,766,632 (453M)
- arch/x86/boot/compressed/vmlinux: 14,100,280
- arch/x86/boot/compresses/vmlinux.bin: 56,626,008
- arch/x86/boot/compresses/vmlinux.bin.zst: 13,835,528
- arch/x86_64/boot/bzImage: 14,524,607

with esstra data:
- vmlinux: 766,636,328 bytes (766M)
- arch/x86/boot/compressed/vmlinux: 16,189,240
- arch/x86/boot/compresses/vmlinux.bin: 369,495,688
- arch/x86/boot/compresses/vmlinux.bin.zst: 14,453,836
- arch/x86/boot/bzImage: 16,613,567

The size of the extracted esstra data (in raw format) for vmlinux was:
vmlinux.esstra-data: 155583207

There's an approximately 310M difference in size between vmlinux without esstra
data and the vmlinux with esstra data. That's suspiciously close to 2 times the
size of the esstra data. I haven't looked at the actual ELF layout to see what the
remaining approximately 156M of difference in size is. (Possibly a duplicate
.esstra section, or some other hole that is .esstra-sized, but I need to check).

I hope this data is useful

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions