А так же, Каждый логический процессор в системе, имеет директорию
/sys/devices/system/machinecheck/machinecheckN
(где N - номер процессора)
Эти директории содержат файлы для динамической конфигурации, а именно:
* bankNctl
Содержит 64-х битную маску, включающая или отключающая определенные сообщения,
об исключениях, для текущего ЦПУ. Если все биты маски равны нулю, тогда никакие
сообщения не выдаются.
Остальные файлы конфигурации, хотя и находятся в каждой папке sysfs, но изменения
в любом из них влияют на все процессоры. (думается тяжело было бы реализовывать
различные степени толерантности для разных ядер на одном CPU)
* check_interval
Интервал опроса процессора, в минутах, по умолчанию 5 минут.
* tolerant
Уровни толерантности:
0: Всегда генерировать panic на неисправимых ошибках или записывать в лог исправленные.
1: Генерировать panic или ошибку шины (SIGBUS) на неисправимых ошибках или записывать
в лог исправленные.
2: Генерировать ошибку шины (SIGBUS) на неисправимых ошибках или записывать в лог исправленные.
3: НИКОГДА не генерировать panic или ошибку шины (SIGBUS), а только записывать лог
(использовать только для тестирования)
По умолчанию: 1
И самое интересный конфиг MCE это
* trigger
Программа которая будет запущена, когда в sysfs появляется какое-либо событие от MCE.
Например запуск вывода на консоль, экран, или отправка почты
# echo 'mail -t root -s "MCE EVENT: `date "+%m.%d.%Y - %H:%M:%S"`"' > \
/sys/devices/system/machinecheck/machinecheck0/trigger
Именно использование trigger удобнее, так как не надо дёргать крон каждые 5 минут.
Так, выше кем-то скопипастенные команды, запишем в триггер, дабы освободить крон
# export MCE_TRIGGER="/sys/devices/system/machinecheck/machinecheck0/trigger"
# echo '/usr/sbin/mcelog --ignorenodev --filter >> /var/log/mcelog' > $MCE_TRIGGER;