¿Cómo puedo determinar si mi kernel de Linux usa SYSENTER/SYSEXIT para llamadas al sistema?

¿Cómo puedo determinar si mi kernel de Linux usa SYSENTER/SYSEXIT para llamadas al sistema?

Estoy tratando de establecer si mi kernel de Linux está usando instrucciones sysenter/sysexit para iniciar y finalizar llamadas al sistema desde el espacio del usuario.

El kernel que estoy ejecutando es "2.6.31.12-174.2.3.fc12.x86_64".

¿Algunas ideas?

METRO.

Respuesta1

sysenter/sysexit depende más de su CPU que del kernel: Linux lo ha utilizado desde los primeros 2,5 días. Linux elige los métodos SYSENTER, SYSCALL o int 80 heredado dependiendo del tipo de CPU en el que se esté ejecutando.

No estoy seguro de cómo se puede confirmar que realmente se está utilizando. No creo que Systemtap o LTT se vean en un nivel lo suficientemente bajo. Tal vez podría instrumentar el kernel y agregar algunos puntos de seguimiento en el código vDSO...

Respuesta2

La única sugerencia que se me ocurre sería utilizar elKit de herramientas de seguimiento de Linuxpara crear un volcado del kernel y examinar las llamadas al sistema.

Respuesta3

Podrías considerar investigarSistemaTap. Con eso, debería poder escribir un script que desencadene una acción cada vez que ocurra un evento de su agrado, incluidas las llamadas al sistema.

información relacionada