Измерение задержки UDP для Linux с использованием ftrace

Мне нужно измерить задержку между одним UDP-пакетом, поступающим на порт Ethernet (т. е. сгенерированным прерыванием), и временем доставки этого пакета на уровень пользователя (т. е. разблокировка системного вызова read()).

Это время можно измерить с помощью меток времени с помощью ioctl SIOCGSTAMP (на уровне ядра) и clock_gettime (на уровне пользователя). Однако мне интересно понять, как эту задержку можно измерить с помощью команды ftrace.


person Claudio    schedule 21.10.2015    source источник


Ответы (1)


Если вы видите вывод ftrace здесь:

Отследить пакет, когда он проходит через ядро (линукс)

и это:

Путь пакета UDP в ядре Linux

внимательно, вы заметите, что информация о времени также печатается в левой части вывода ftrace. Таким образом, вы можете получить очень подробный анализ времени между различными функциями в сетевом стеке.

person Peter Teoh    schedule 20.12.2015
comment
Спасибо. Однако в примере, по-видимому, не указано время, когда поступило прерывание hw. Имеет ли это ? - person Claudio; 21.12.2015