Как определить, использует ли мое ядро ​​Linux SYSENTER / SYSEXIT для системных вызовов?

Как определить, использует ли мое ядро ​​Linux SYSENTER / SYSEXIT для системных вызовов?

Я пытаюсь установить, использует ли мое ядро ​​Linux инструкции sysenter/sysexit для инициирования и завершения системных вызовов из пространства пользователя.

Ядро, которое я использую, — «2.6.31.12-174.2.3.fc12.x86_64».

Есть идеи?

М.

решение1

sysenter/sysexit больше зависит от вашего процессора, чем от ядра - Linux использует его с первых 2.5 дней. Linux выбирает либо SYSENTER, SYSCALL, либо устаревшие методы int 80 в зависимости от того, на каком типе процессора он работает.

Не уверен, как вы можете подтвердить, что он действительно используется. Я не думаю, что Systemtap или LTT будут смотреть на достаточно низком уровне. Может быть, вы могли бы инструментировать ядро ​​и добавить несколько точек трассировки в код vDSO...

решение2

Единственное предложение, которое я могу придумать, это использоватьНабор инструментов трассировки Linuxчтобы создать дамп ядра и разобраться в системных вызовах.

решение3

Вы могли бы рассмотреть возможность рассмотренияСистемаTap. Благодаря этому вы сможете написать скрипт, который будет запускать действие всякий раз, когда происходит желаемое вами событие, включая системные вызовы.

Связанный контент