В настоящее время я использую функцию do_gettimeofday()
для измерения времени в ядре, что дает мне микросекундную точность. Есть ли что-нибудь доступное, более точное, чем это (может быть, порядка наносекунд)?
Измерение времени в ядре ядра Linux с точностью до микросекунды
Ответ 1
Функция ktime_get()
возвращает ktime_t
, которая имеет наносекундное разрешение.
Ответ 2
Как я знаю, самым точным таймером должен быть регистр счетчика конкретных процессоров (например, TSC в x86). Ядро Linux предоставляет макросы rdtsc, rdtscl, rdtscll из файла. /arch/x 86/include/asm/msr.h, чтобы прочитать это значение регистра. Для ARM регистр счетчика циклов.
Эти регистры отличаются от CPU к CPU. Общий интерфейс для доступа к нему - это функция "get_cycles", которая объявляется в файле.
Может быть, этот документ может быть полезен.