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

1

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

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

Alguma idéia?

M.

    
por ScaryAardvark 25.01.2010 / 20:00

3 respostas

1

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

Não tenho certeza de como você pode confirmar se está sendo usado. Eu não acho que o Systemtap ou LTT vai olhar em um nível baixo o suficiente. Talvez você possa instrumentar o kernel e adicionar alguns pontos de rastreio no código vDSO ...

    
por 25.01.2010 / 22:35
0

A única sugestão que posso imaginar seria usar o Linux Trace Toolkit para criar um dump do kernel e explorar o sistema chama.

    
por 25.01.2010 / 20:47
0

Você pode considerar o SystemTap . Com isso, você deve ser capaz de escrever um script que desencadeie uma ação sempre que um evento de seu gosto, incluindo chamadas do sistema, ocorrer.

    
por 25.01.2010 / 21:06

Tags