Too much PIE is bad for performance

Mathias Payer · Repository for Publications and Research Data (ETH Zurich) · 2012

Compiling an application as a Position Independent Exe cutable (PIE) enables Address Space Layout Randomiza tion to protect the application from security attacks by map ping the executable at a random memory location. Neverthe less most applications on current x86 Linux distributions are mapped to a static address for performance reasons. This paper evaluates the overhead and side-effects of PIE using the SPEC CPU2006 benchmarks on an Intel Core i7 CPU with a recent Ubuntu distribution. Our analysis shows that the overhead for PIE on 32bit x86 is up to 26% for some benchmarks with an (arithmetic) average of 10% and a geometric mean of 9.4%. We identify the increased register pressure as the source for most of the overhead on x86.

Read the paper · More papers on PaperTik