Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

[Перевод] Структуры данных на практике. Глава 18: Очереди драйверов устройств

Дата публикации: 30-06-2026 07:32:18

Наш сетевой драйвер терял пакеты. Не время от времени, а постоянно. На пропускной способности линии с 64-байтными пакетами мы теряли 31% всего трафика.В качестве оборудования использовался Ethernet-контроллер на 1 Гбит/с на SoC RISC-V. В спецификациях говорилось, что он может справляться со скоростью проводного трафика. Движок DMA работал корректно. Обработчик прерываний срабатывал вовремя. Тем не менее, пакеты исчезали.Я начал с очевидного подозреваемого: очереди получения. Реализация выглядела вполне логично — простой связанный список с указателями на голову и хвост. Под нагрузкой (64-байтные пакеты на пропускной способности линии) драйвер терял 31% пакетов! При профилировании обнаружилась причина проблемы: производительность убивали связанный список и спин-блокировки.Я переписал драйвер, использовав кольцевой буфер без блокировок. Результаты: потеря 31% пакетов превратилась в 0,12% — улучшение в 258 раз!В этой главе мы поговорим о структуре очередей для драйверов устройств. Читать далее

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1[Перевод] Структуры данных на практике. Глава 17: Структуры данных загрузчиков0529-06-2026
2[Перевод] Структуры данных на практике. Глава 16: Фильтры Блума и вероятностные структуры данных0828-06-2026
3[Перевод] Вы можете победить бинарный поиск5715-06-2026
4OSDEV: Разработка аллокатора на С++ часть 5. osdev-libstdc0528-06-2026
5Вам не нужен BloodHound0611-06-2026
6OSDEV: Itanium часть 2: One-time Construction API и сигнлтоны Майерса0508-07-2026
7Проигрыватель WAV файлов на STM325702-07-2026
8УМНЫЙ К1 — контроллер на базе ESP32 с REST, syslog и много опенсорса2630-06-2026
9Писать свои инструменты лучший способ изучить CAN-шину5709-07-2026
10Диктофон на микроконтроллере (WM8731 + I2S + STM32 + SDIO + FAT16)5706-07-2026

Классификация: Пресс-релизы. Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 7. Источник: habr.com.