Строка вида IOAPIC[0]: apic_id 24, version 32, address 0xfec00000, GSI 0-23 или упоминание «119 entries» при загрузке системы — это не ошибка, а информационное сообщение о контроллере прерываний IO-APIC, который встроен в чипсет материнской платы. Пользователи обычно замечают эту запись в логах загрузки Linux (вывод команды dmesg) или в системной информации BIOS и пугаются непонятных цифр. На деле сообщение лишь сообщает, сколько линий прерываний обнаружил контроллер и какие идентификаторы ему присвоены.
Разберёмся, что скрывается за аббревиатурой IOAPIC, откуда берутся значения 24 и 119, в каких случаях эта информация сигнализирует о проблеме, а в каких — является нормальной частью инициализации оборудования.
Что такое IO-APIC и зачем он нужен
IO-APIC (Input/Output Advanced Programmable Interrupt Controller) — это аппаратный контроллер, который принимает сигналы прерываний от устройств (дисков, сетевых карт, USB-контроллеров, видеокарты) и распределяет их между ядрами процессора. Он пришёл на смену старому контроллеру PIC 8259, у которого было всего 15 линий прерываний — этого давно не хватает современным системам.
Каждый IO-APIC имеет определённое число входов — так называемых redirection entries (записей перенаправления). Классическое значение — 24 входа, то есть линии прерываний с номерами от 0 до 23. Именно это число чаще всего фигурирует в сообщениях вида «IOAPIC 24 entries»: система обнаружила контроллер с 24 входами прерываний.
В современных платформах контроллеров может быть несколько — например, один в чипсете и дополнительные в процессоре или на шине PCIe. Каждый из них получает собственный идентификатор (APIC ID) и свой диапазон глобальных системных прерываний GSI.
Что означают числа 24 и 119
Цифры в сообщении зависят от конкретного оборудования и версии прошивки. Число 24 обычно указывает либо на идентификатор контроллера (APIC ID), либо на количество линий прерываний. Число 119 чаще всего означает верхнюю границу диапазона GSI — то есть система суммарно обслуживает прерывания с номерами от 0 до 119, распределённые между несколькими контроллерами IO-APIC.
Типичный вывод в логе загрузки Linux выглядит примерно так:
IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23IOAPIC[1]: apic_id 3, version 32, address 0xfec01000, GSI 24-55
IOAPIC[2]: apic_id 4, version 32, address 0xfec02000, GSI 56-119
Наличие нескольких строк IOAPIC с диапазонами GSI — признак нормальной инициализации, а не сбоя. Система просто перечисляет найденные контроллеры и закреплённые за ними прерывания.
📊 Где вы встретили сообщение про IOAPIC?