Я пытаюсь измерить производительность некоторых библиотечных вызовов. Мой основной инструмент измерения - это вызов rdtsc. После некоторого чтения я понимаю, что мне нужно отключить прерывание и прерывания, чтобы получить наиболее точные показания. Может кто-нибудь помочь мне понять, как это сделать? Я знаю, что у pthreads есть механизм «установки сродства». Этого достаточно, чтобы выполнить работу?
Я также где-то читал, что могу делать вызовы в ядро вида
preempt_disable()
raw_local_irq_save(...)
Есть ли польза от использования одного подхода по сравнению с другим? Я попробовал последний подход и получил эту ошибку.
error: 'preempt_disable' was not declared in this scope
, который можно исправить, добавив linux / preempt.h, но компилятор все еще жалуется.
linux/preempt.h: No such file or directory
Очевидно, что я не делал взлома ядра и не мог найти этот файл в своей системе нигде. Я действительно надеюсь, что мне не придется устанавливать новое ядро Linux. :)
Спасибо за ваш вклад.