Я хочу протестировать некоторые аспекты производительности драйвера устройства Linux (загружаемого модуля). В частности, насколько быстрыми являются определенные пути кода, когда они вызываются из пользовательского пространства с помощью системных вызовов.
Помимо измерения абсолютного времени, я хотел иметь показатель того, насколько велика задержка данного пути кода. относительно «скорости света» на данном хосте. То есть, как мой код соотносится с кратчайшим необходимым путем обхода пространство пользователя ↔ ядро?
Мне нужно найти, какой системный вызов Linux выполняет как можно меньше полезной работы насколько это возможно. Другими словами, я ищу тот, для которого время выполнения во многом зависит от двусторонней задержки пользовательского пространства/ядра.
В идеале это должен быть «стабильный» путь кода, который редко задерживается. поскольку необходимо выполнить некоторую дополнительную обработку данных.
В то же время этот системный вызов не должен быть ярлыком для libc или любой другой оболочки чистого пользовательского пространства, он должен выполнять честный обход в ядро и назад.
Есть предложения?
Подробнее здесь: https://stackoverflow.com/questions/792 ... rk-against