Ко всемирному дню #ArduinoD15 я подготовил материал по конфигурации и запуску свежайшего ядра Linux на плате Intel Edison (Arduino Edition).
Читать полностью »
Рубрика «linux kernel» - 10
Запускаем свежайшее ядро Linux на Intel Edison
2015-03-27 в 19:53, admin, рубрики: arduino, intel, Intel Edison, IoT, linux, linux kernel, Разработка для интернета вещейКак избежать разыменования нулевого указателя, на примере одного исправления в ядре Linux
2015-03-26 в 14:22, admin, рубрики: C, linux kernel, Программирование, системное программирование, метки: C Идея в следующем. Чтобы не было разыменование нулевого указателя, нужно, чтобы не было нулевого указателя. Ваш КО. Так сложилось, что однажды я исправил небольшую проблему в ядре Linux, но это была не текущая ветка ядра, а стабильная. В текущей на тот момент эту проблему тоже исправили, но по другому.
Читать полностью »
Сделаем код чище: Рекомендации по подготовке изменений в ядро Linux
2015-03-18 в 13:20, admin, рубрики: C, linux kernel, linux kernel development, open source, сделаем код чище Продолжая тему улучшения кода ядра Linux хочу дать несколько рекомендаций, основанных как на жизненном опыте, так и на существующей документации.
Читать полностью »
Сделаем код чище: Что можно исправить в ядре Linux
2015-03-15 в 18:36, admin, рубрики: C, linux kernel, linux kernel development, open source, сделаем код чище, метки: linux kernel development Наверняка многие хотели бы попробовать что-то изменить в ядре Linux к лучшему, но не знают с чего начать. Я хочу описать несколько проблем, исправить которые под силу каждому, и на примере показать путь от нахождения проблемы до опубликования её исправления в списке рассылки. По ходу повествования читатель познакомится с некоторыми вспомогательными утилитами.
Читать полностью »
Об одном трюке для возврата кода ошибки из функции
2015-03-08 в 20:25, admin, рубрики: C, linux kernel, linux kernel development, open source Ядро Linux — кладезь как применяемых алгоритмов, так и некоторых хакерских или полухакерских трюков, призванных убыстрить и / или уменьшить размер в памяти (memory footprint). Об одном из таких полухахерских трюков я хочу рассказать далее.
Читать полностью »
Сделаем код чище: Специальные расширения vsnprintf() в ядре Linux
2015-03-08 в 0:00, admin, рубрики: C, linux kernel, linux kernel development, open source, printfСмотря на кучу исходного кода, который засылают программисты в списки рассылки подсистем ядра Linux иногда хочется плакать. С одной стороны бывает ужасный и непотребный код, с другой — люди, возможно, впервые пытаются что-то сделать для ядра, поэтому не знают всех его особенностей.
Книга Linux Device Drivers устарела, а новая версия выйдет нескоро. Поэтому мне хочется заполнить пробелы в знаниях тех программистов, которые пишут код в ядро.
Читать полностью »
Что плохого в изменении *_defconfig при работе с исходниками ядра Linux
2015-03-06 в 17:08, admin, рубрики: Git, linux kernel, open sourceПо следам моей первой публикации хочу сделать небольшую заметку об изменении файлов i386_defconfig или x86_64_defconfig, входящих в поставку исходников ядра Linux.
Запускаем стоковое ядро на Intel Galileo
2015-03-05 в 20:05, admin, рубрики: arduino, galileo, intel quark, IoT, linux kernel, Разработка для интернета вещейНе сомневаюсь, что большинство пользователей Intel Galileo задаётся вопросом, когда же наконец можно будет обновить ядро?
Обработка логов с учётом предыдущих сообщений в logstash-elasticsearch
2015-02-25 в 10:24, admin, рубрики: elasticsearch, linux kernel, logstash, lucene, Блог компании Webzilla, ит-инфраструктура, Серверное администрирование, системное администрированиеПро отлов ядерных MCE (machine check error) и прочей гадости с помощью netconsole я писал недавно. Крайне полезная вещь. Одна проблема: throttling на CPU из-за локального перегрева (длительной нагрузки) фиксируется как MCE. Случается бэкап — и админам приходит страшное сообщение об MCE, которое на практике означает «чуть-чуть перегрелось» и точно не требует внимания к себе в 3 часа ночи.
Смехотворность проблемы ещё тем, что Linux фиксирует MCE после того, как throttling закончился. То есть режим 'normal', но вместо этого оно превращается MCE. Выглядит это так:
CPU0: Core temperature above threshold, cpu clock throttled (total events = 40997) CPU4: Core temperature above threshold, cpu clock throttled (total events = 40997) CPU4: Core temperature/speed normal CPU0: Core temperature/speed normal mce: [Hardware Error]: Machine check events logged
При этом мы точно хотим реагировать на нормальные MCE. Что делать?
В рамках logstash обработка сообщений предполагается stateless. Видишь сообщение — реагируешь. Внедрять же ради одного типа сообщений более сложную систему — оверкилл.
Казалось бы, есть фильтр (не путать с output) elasticsearch, который позволяет делать запросы. К сожалению, он не умеет делать 'if'ы, то есть remove_tag и add_tag будут отрабатывать вне зависимости от того, удался поиск или нет.
Грустно.
Читать полностью »
Обработка сообщений ядра
2015-01-27 в 10:48, admin, рубрики: linux kernel, logstash, monitoring, nagios, shinken, Блог компании Webzilla, Настройка Linux, Серверное администрирование, системное администрированиеПредисловие
Страшная сказочка:
EDAC MC0: 1 CE read ECC error on CPU#0Channel#1_DIMM#0 (channel:1 slot:0)
EXT4-fs error: ext4_wait_block_bitmap:445: Cannot read block bitmap
Out of memory: Kill process 95 (sshd) score 31 or sacrifice child
CMCI storm detected: switching to poll mode
page allocation failure: order:1, mode:0x4020
invalid opcode: 0000 [#1] SMP
Неприятно выглядит, правда? Список может быть очень длинным очень длинный. В этой статье я расскажу как с этим жить и что мы с ним сделали.
Часть из этих сообщений в приерах выше заставит вас погрузиться в бездны современной архитектуры процессоров («CMCI storm», удачи в поиске дороги назад, из дебрей интернетов)… Cтранные вещи в ядре могут нарушать ожидания о том, как работают компьютеры, делая последующую отладку очень затруднённой. Отсутствие знания о том, что случилось может даже оставить с грустным ответом «какая-то неведомая фигня, ребутнули, вроде, прошло».Читать полностью »