FreeBSD Status Report
Report Entry
Поддержка FRED для amd64
Ссылки:
Спецификация Intel FRED до SDM URL: https://www.intel.com/content/www/us/en/content-details/819481/flexible-return-and-event-delivery-fred-specification.html
+ D55829 amd64: поддержка FRED URL: https://reviews.freebsd.org/D55829
Контакт: Konstantin Belousov <kib@FreeBSD.org>
Реализована поддержка функции FRED (Flexible Return and Event Delivery — гибкое возвращение и доставка событий) для очень современных платформ amd64. FRED представляет собой полную переработку аппаратного интерфейса для сообщения операционной системе об исключениях, прерываниях и системных вызовах, а также способа, которым операционная система возвращает управление из обработчика прерванному коду. Целью разработки FRED было избавиться от слоёв функций совместимости и ошибок, накопившихся в существующем способе, назовём его доставкой событий на основе IDT.
Спецификация FRED теперь включена в Intel SDM редакции 90. Похоже, что AMD также планирует предоставить FRED в некоторых будущих реализациях.
Таким образом, поддержка FRED требует нового пути кода для обработчиков событий. Хорошая структурированность FRED позволяет использовать минимальные trampoline-части на ассемблере, перенося бОльшую часть диспетчеризации в код на C.
Реализация обработчика FRED была относительно простой и потребовала гораздо меньше времени, чем я изначально предполагал. Это показывает, насколько хорош и естественен предлагаемый интерфейс.
На данный момент тестирование проводилось только на эмуляторе Simics. FRED должен поддерживаться недавно выпущенными процессорами Intel Panther Lake, но у меня нет доступа к реальному оборудованию.
Спонсор: Фонд FreeBSD
Последнее изменение: 27 июля 2026 г. от Vladlen Popolitov