El Enigma del Desenrollamiento de la Pila en Perf
Perf, una poderosa herramienta de análisis de rendimiento, utiliza interrupciones de desbordamiento del contador PMU para capturar estados de subprocesos para la creación de perfiles. Sin embargo, el desenrollamiento de la pila presenta un desafío. Los compiladores modernos omiten los punteros de marco de forma predeterminada, lo que dificulta el rastreo de la pila. Si bien es posible recompilar con -fno-omit-frame-pointer, es costoso y puede provocar incompatibilidades con las bibliotecas del sistema. DWARF ofrece una alternativa, pero su complejidad y la sobrecarga de rendimiento son considerables, lo que llevó a Linus Torvalds a rechazar su uso en el desenrollamiento de la pila del kernel. Por lo tanto, Perf emplea un compromiso: copiar solo la parte superior de la pila al espacio de usuario para el desenrollamiento. Esto limita el tamaño de la pila (65.528 bytes), pero equilibra eficazmente el rendimiento y la practicidad.