Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
ORC Unwinder For Linux 4.14, Boosts Kernel Performance By Disabling Frame Pointers
The ORC Unwinder is a lightweight, Linux kernel debuginfo implementation with "DWARF done right for unwinding...
The ORC unwinder is almost two orders of magnitude faster than the (out of tree) DWARF unwinder - which is important for perf call graph profiling. It is also significantly simpler and is coded defensively: there has not been a single ORC related kernel crash so far, even with early versions. (knock on wood!)"
The ORC Unwinder alone isn't exciting or relevant for most of you, but by having ORC unwinder enabled, CONFIG_FRAME_POINTER can be disabled. CONFIG_FRAME_POINTER is enabled right now on most Linux distribution kernels, but disabling it can yield some performance advantages. The frame pointer option has the compiler add frame pointer code to every function of the kernel, but with it disabled, the kernel shrinks and yields better cache utilization and fewer instructions executed. System calls can be faster by 1~3% or by as much as 5~10% faster for some "function execution intense workloads."
More details via this pull request.