USB4STREAM появился в Linux 7.2. Разработанный инженерами Intel протокол позволяет передавать необработанные пакеты напрямую между двумя системами, соединенными через USB4 или Thunderbolt.
В нынешнем варианте драйвер использует прерывания и рабочие потоки ядра. Процессор получает сигнал о поступлении данных, после чего планировщик запускает их обработку. Такой подход экономит ресурсы, но добавляет задержку, которая может мешать приложениям, чувствительным ко времени отклика.
Новый режим busy polling меняет эту схему. Вместо ожидания прерываний система постоянно проверяет кольцевые буферы USB4STREAM. Данные можно обнаружить и обработать быстрее, поскольку не требуется ждать работы планировщика.
Плата за сокращение задержки вполне конкретная: процессор тратит больше тактов на непрерывный опрос. Кроме того, при включенном режиме нельзя использовать системный вызов poll(), предназначенный для ожидания событий от файловых дескрипторов.
Разработчики не приводят результаты тестов, поэтому пока неизвестно, насколько уменьшится задержка и какой окажется дополнительная нагрузка на CPU. Пользователь сможет самостоятельно включать режим через параметр busy_poll в ConfigFS. По умолчанию постоянный опрос, судя по описанию изменения, использоваться не будет.
Патч уже добавлен в ветку next репозитория Thunderbolt. Это подготовительная ветка перед окном слияния Linux 7.3, поэтому изменение еще должно попасть в основную ветку ядра.
Региональных ограничений у функции нет. Она относится к ядру Linux и будет доступна в системах с подходящим оборудованием USB4 или Thunderbolt после перехода на версию с поддержкой нового режима.
Обычным пользователям постоянный опрос вряд ли понадобится. Изменение рассчитано на задачи, где задержка важнее расхода процессорного времени. Какой выигрыш даст такой обмен ресурсами, станет понятно после появления первых измерений.
Стали бы вы увеличивать нагрузку на процессор ради минимальной задержки при передаче данных?
Linux ускорит USB4STREAM ценой дополнительной нагрузки на CPU
В Linux 7.3 планируют добавить режим busy polling для USB4STREAM. Он снижает задержку при передаче данных между компьютерами через USB4 и Thunderbolt, но постоянно занимает процессор и отключает часть стандартных механизмов ожидания событий.

Автор: Michael Larabel
Источник: Phoronix
4 просмотров
Другие новости
- Linux перестанет спорить с прошивкой новых процессоров Intel
- SteamOS запустили на игровом ноутбуке, но до замены Windows еще далеко
- AMD разрешит убирать поддержку старых Radeon из сборок Linux
- Apple откроет буфер обмена iPhone для Windows, но ждать придется до 2027 года
- Windows 11 покажет содержимое уведомлений Android без открытия Phone Link
- Apple готовит общий буфер обмена для iPhone и Windows, но ждать придется долго