Intel E830 метит пакеты в наносекундах, но спотыкается о 2 мкс
Для PTP, синхронного захвата и сетей TSN Ethernet-пакет давно стал маленьким измерительным импульсом: карта ставит ему аппаратную метку времени на входе или выходе, а система пытается отправить следующий точно в назначенный слот. Интуитивно хочется считать эти две способности одной характеристикой. Эксперимент с Intel E830 показывает разрыв между ними: её временная шкала выглядит очень чисто, однако исполнитель, выпускающий кадры по расписанию, иногда задерживается на микросекунды.
FPGA отделила часы карты от проводного выхода
В качестве внешнего наблюдателя использовали EFCC — FPGA-инструмент на Xilinx Alveo U250, который генерирует 10GbE-трафик и аппаратно ловит время прихода кадров с шагом 6.4 нс. E830-XXVDA2 приняла 50 000 пакетов подряд. Интервалы, восстановленные из RX hardware timestamps карты, имели peak-to-peak разброс 4 нс для кадров 64 B и 6 нс для 1518 B. Это характеристика разности соседних меток, а не паспортная абсолютная погрешность часов E830 относительно мирового времени.
Передающие метки сравнивать сложнее: часы FPGA и NIC живут в разных генераторах и понемногу расходятся. После компенсации этого дрейфа изотонической регрессией остаточный диапазон TX timestamp составил 4.6 нс; простая линейная модель оставляла 9.5 нс. Карта, таким образом, способна фиксировать момент передачи гораздо стабильнее, чем позволяют увидеть обычные программные замеры через стек ОС.
Расписание пакетов открыло микросекундный хвост
Совсем другая картина получилась у scheduled transmission. Кадрам назначали интервалы около 100 мкс, затем EFCC измерял реальные промежутки между соседними выходами на линии. У 64-байтных пакетов полный разброс max−min лежал в пределах 531.2–755.2 нс, со стандартным отклонением 28.6–63.5 нс. Около 99% интервалов укладывались примерно в ±300 нс от цели, но редкие события уходили примерно на 2 мкс. Для 1518-байтных кадров хвост оказался заметнее: полный наблюдаемый диапазон достигал 3.168–4.096 мкс.
Это не прямое измерение абсолютной ошибки каждого кадра относительно PHC: автор сознательно анализировал разность соседних интервалов, чтобы не подменять джиттер передачи дрейфом двух часов. Именно поэтому 4.6 нс и 2 мкс нельзя складывать или читать как две оценки одной «точности карты». Первое число описывает остаток при сравнении меток времени, второе — редкую неровность физического выпуска кадров.
Почему стенд нельзя считать спецификацией E830
У опыта есть важная инженерная цена. Для scheduled TX автор исправил преобразование времени в Linux-драйвере и добавил обход ошибки в DPDK, связанной с нулевым полем Scheduled Time Descriptor. Тестировали одну E830 с NVM 2.11 на Xeon w5-3435X, с выделенным ядром, отключёнными SMT, DVFS, C-states и ASPM. Результат нельзя переносить на произвольный сервер с обычными настройками. Есть и жёсткая граница планирования: 19-битное поле времени с шагом 128 нс формально охватывает около 67.1 мс, но будущее время корректно интерпретировалось лишь примерно до 33.6 мс; более дальний кадр уходил сразу.
Для инженера TSN это полезное разделение ролей. Аппаратная метка E830 годится для очень тонких измерений и дисциплины часов. Планировщик Ethernet-кадров требует отдельной проверки распределения задержек, особенно его редкого хвоста: один пакет, вышедший на 2 мкс позже, способен разрушить временной бюджет системы, где среднее и стандартное отклонение выглядели почти безупречно.