Процесс регистрации ошибки начинается с момента, когда ошибка обнаружена модулем операционной системы. Сегмент кода, отвечающий за обнаружение ошибок, передает сведения об ошибке либо в службы ядра errsave и errlast, либо в функцию errlog. В обоих случаях данные заносятся в особый файл /dev/error. Вместе с данными об ошибке записывается время ее обнаружения. Демон errdemon постоянно проверяет наличие новых записей в файле /dev/error, а при поступлении новых данных выполняет стандартную процедуру обработки.
Прежде чем добавить запись в протокол ошибок, демон errdemon сравнивает метку, полученную от ядра или приложения, с содержимым реестра шаблонов ошибок. Если в реестре есть запись, соответствующая метке, демон начинает сбор данных из других областей системы.
Для создания записи в протоколе ошибок демон errdemon считывает шаблон из реестра, имя ресурса блока, обнаружившего ошибку, и сведения об ошибке. Если ошибка свидетельствует об аппаратной неполадке и для нее предусмотрены специальные данные в реестре аппаратного обеспечения (VPD), то демон считывает VPD из ODM. При обращении к протоколу ошибок с помощью SMIT или команды errpt данные протокола форматируются в соответствии с шаблонами в реестре шаблонов и представляются в виде краткого или подробного отчета. Большинство записей в протоколе ошибок связано с программными и аппаратными неполадками, однако в нем могут быть и информационные сообщения.
Команда diag применяется для диагностики аппаратных неполадок на основе содержимого протокола ошибок. Для правильной диагностики новых неполадок система удаляет из протокола записи об аппаратных ошибках старше 90 дней. Записи о программных ошибках удаляются через 30 дней после занесения в протокол.
При обсуждении протокола ошибок
применяются следующие термины: