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.