repoline-spectre-linux

El kernel de Linux ha admitido Retpolines durante más de tres años como parte de sus mitigaciones Spectre Variant Two, mientras que ahora se propone una serie de parches que reescribe la lógica de reescritura de Retpoline.

El ingeniero de Intel y desarrollador de kernel desde hace mucho tiempo, Peter Zijlstra, publicó hoy el conjunto de nueve parches que reescriben la forma en que se reescriben las Retpolines. Zijlstra explicó, " actualmente objtool emite entradas alternativas para la mayoría de las llamadas retpoline. Sin embargo, tratar de extender eso generó problemas (los archivos ELF son horribles). Por lo tanto, revise completamente esto y haga que objtool emita una sección .retpoline_sites que enumere todas las llamadas retpoline thunk generadas por el compilador. Entonces el núcleo puede hacer con ellos lo que le plazca " .

Este código reescrito, a su vez, asegurará que los Retpolines se reescriban en instrucciones indirectas para los casos en los que Retpoline no esté habilitado, y que se reescriban en LFENCE indirecto para el manejo de AMD Retpoline donde el tamaño lo permita el compilador. El código BPF x86 también se actualiza para que coincida con el comportamiento del resto del kernel alrededor de Retpolines; anteriormente, el código BPF no verificaba los indicadores X86_FEATURE_RETPOLINE, sino que emitía incondicionalmente una llamada de procesador. Con el código reescrito también hace que la ejecución con la opción de arranque "spectre_v2 = off" se acerque más a la imagen del kernel si se construye el kernel sin la opción "RETPOLINE =" Kconfig habilitada.

La parte notable para los usuarios finales es: "Todo esto debería ayudar a mejorar el rendimiento al eliminar una indirecta". Esto puede ayudar a algunos, aunque no espere ningún milagro y seguirá siendo obvio el uso de trampolines de retorno donde sea necesario.

Este conjunto de parches que reelaboran la lógica de Retpolines para el kernel de Linux se puede encontrar actualmente en la lista de correo del kernel .

 

Fuente: phoronix | somoslibres

¿Quién está en línea?

Hay 6992 invitados y ningún miembro en línea