Facebook Has Been Working On BOLT'ing The Linux Kernel For Greater Performance
For several years now Facebook engineers have been working on BOLT as a way to speed-up Linux/ELF binaries. This "Binary Optimization and Layout Tool" is able to re-arrange executables once profiled to generate even faster performance than what can be achieved by a compiler's LTO and PGO optimizations. One of the latest BOLT efforts has been on optimizing the Linux kernel image.
Similar to the challenges in allowing Profile Guided Optimizations (PGO) of the Linux kernel, BOLT'ing the Linux kernel faces similar complex hurdles around properly profiling/sampling the kernel with relevant workloads for optimization, the massive code-base of the kernel, modules vs. core kernel code, etc, compared to the existing BOLT focus on just optimizing ELF application executables. BOLT'ing the kernel was talked about at this week's Linux Plumbers Conference.
It's a worthy effort though as Facebook continues to promote "double digit speedups" with BOLT on top of PGO+LTO compiler optimizations. These speed-ups come by way of optimizing the code layout of the executable for more efficient hardware page usage and instruction caching.
Those interested in Facebook's BOLT optimization tool in general or the prospects of in the future being able to fully BOLT the kernel, see the presentation (below) and slides by Facebook's Maksim Panchenko. The BOLT code itself continues to be open-source and developed in the open on GitHub.
Similar to the challenges in allowing Profile Guided Optimizations (PGO) of the Linux kernel, BOLT'ing the Linux kernel faces similar complex hurdles around properly profiling/sampling the kernel with relevant workloads for optimization, the massive code-base of the kernel, modules vs. core kernel code, etc, compared to the existing BOLT focus on just optimizing ELF application executables. BOLT'ing the kernel was talked about at this week's Linux Plumbers Conference.
It's a worthy effort though as Facebook continues to promote "double digit speedups" with BOLT on top of PGO+LTO compiler optimizations. These speed-ups come by way of optimizing the code layout of the executable for more efficient hardware page usage and instruction caching.
Those interested in Facebook's BOLT optimization tool in general or the prospects of in the future being able to fully BOLT the kernel, see the presentation (below) and slides by Facebook's Maksim Panchenko. The BOLT code itself continues to be open-source and developed in the open on GitHub.
17 Comments