Глава 4. Обработка аппаратных прерываний
Содержание
- Глава 4. Обработка аппаратных прерываний
- Технические требования
- Аппаратные прерывания и как ядро обрабатывает их
- Выделение аппаратного IRQ
- Реализация подпрограммы обработки прерывания
- Работа с моделью потоковых прерываний
- Применение модели потоковых прерываний - её API
- Применение модели управляемых потоковых прерываний - рекомендуемый способ
- Внутренняя реализация соответствующего потокового прерывания
- Зачем пользоваться потоковыми прерываниями?
- Ограничения при использовании потокового обработчика
- Работа с более ранними потоковыми обработчиками hardirq
- Включение и запрет IRQ
- Просмотр всех выделенных линий прерываний (IRQ)
- Разбираемся и с верхними и нижними половинами и применяем их
- Несколько ответов на остающиеся вопросы
- Выводы
- Вопросы
- Дальнейшее чтение
Высвобождение линии IRQ
Разбираемся с прерываниями, переключаемыми уровнем и фронтом - краткое замечание
Представление кода 1 - сетевой драйвер IXGB
Не допускать блокировок - выявление возможных путей блокирования
Маскирование прерываний - значение по умолчанию и их контроль
Оставляйте всё быстрым
Представление кода 2 - обработчик прерываний драйвера i8042
Представление кода 3 - обработчик прерываний сетевого драйвера IXGB
Представление кода 4 - потоковый обработчик прерывания микроконтроллера STM32 F7
Потоковые прерывания - на самом деле выполняют их в реальном масштабе времени
Инициализация tasklet
Исполнение tasklet
Доступные softirqs и для чего они предназначены
Разбираемся с тем как ядро исполняет softirqs
Исполнение tasklet
Использование потоков ядра ksoftirqd
softirqs и одновременность
Просмотр контекста - примеры
Замер прерываний при помощи [e]BPF
Обслуживание замера времени индивидуальных hardirqs
Обслуживание замера времени индивидуальных softirqs
Применение Ftrace для получения обработчика системных задержек
Обнаружение запрещённых прерываний с наихудшими временными задержками при помощи Ftrace
Прочие инструменты