Como posso determinar se meu kernel Linux está usando SYSENTER/SYSEXIT para chamadas de sistema

Como posso determinar se meu kernel Linux está usando SYSENTER/SYSEXIT para chamadas de sistema

Estou tentando estabelecer se meu kernel Linux está usando instruções sysenter/sysexit para iniciar e encerrar chamadas do sistema do espaço do usuário.

O kernel que estou executando é "2.6.31.12-174.2.3.fc12.x86_64".

Alguma ideia?

M.

Responder1

sysenter/sysexit depende mais da sua CPU do que do kernel - o Linux o utiliza desde os primeiros 2,5 dias. O Linux escolhe os métodos SYSENTER, SYSCALL ou legado int 80 dependendo do tipo de CPU em que está sendo executado.

Não tenho certeza de como você pode confirmar se ele está realmente sendo usado. Não acho que o Systemtap ou o LTT pareçam em um nível suficientemente baixo. Talvez você pudesse instrumentar o kernel e adicionar alguns pontos de rastreamento no código vDSO...

Responder2

A única sugestão que consigo pensar seria usar oKit de ferramentas de rastreamento do Linuxpara criar um dump do kernel e vasculhar as chamadas do sistema.

Responder3

Você pode considerar investigarSystemTap. Com isso, você poderá escrever um script que acione uma ação sempre que ocorrer um evento de sua preferência, incluindo chamadas de sistema.

informação relacionada