Není to tak dlouho, co je možné linuxové jádro kompilovat kromě GCC také pomocí kompilátoru LLVM/Clang. Od jádra 5.7 je možné použít Clang pomocí jednoduché volby a v jádře 5.12 se objevilo LTO (Link Time Optimization).
Nyní se vývojáři Google snaží dostat do jádra podporu PGO (Profile Guided Optimization). Ta by se mohla objevit v jádře 5.14. Proces přeložení jádra bude trošku složitější. Nejprve se vytvoří pomalé instrumentované jádro, které sbírá profil. Pustíte na něm svoje typické zátěže a sbíráte profily v /sys/kernel/debug/pgo/profraw
. Ty je potřeba zpracovat případně sloučit pomocí llvm-profdata
. Poté vytvoříte podle tohoto profilu již optimalizované jádro make LLVM=1 KCFLAGS=-fprofile-use=vmlinux.profdata
. Google používá Clang již dlouhou dobu pro jádra Androidu a Chrome OS. PGO bude zatím dostupné jen pro x86 a x86_64.
(zdroj: phoronix)