Назад | Перейти на главную страницу

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

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

Я использую ядро ​​2.6.31.12-174.2.3.fc12.x86_64.

Любые идеи?

М.

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

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

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

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