Ошибка ядра на page_alloc.c - PullRequest
       0

Ошибка ядра на page_alloc.c

1 голос
/ 11 ноября 2010

Я знаю, что это может быть что угодно, но что вообще может указывать следующее сообщение ядра:

<2> ошибка ядра в page_alloc.c: 116!

Эта архитектура не реализует dump_stack ()

Ядро паники: ошибка ядра

В обработчике прерываний - не синхронизируется

<0> Перезагрузка через 5 секунд ..

Это происходит в системе на базе 2.4.20 uclinux (процессор без MMU ARM9). Похоже, во время обработки прерывания произошла плохая вещь: сбой ОЗУ, поэтому ядро ​​не могло выделить память или что-то еще?

Был бы благодарен за любые подсказки.

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

Вам, вероятно, следует проверить строку 116 из page_alloc.c в исходных текстах ядра, чтобы узнать, какое условие вызывает это конкретное сообщение об ошибке.

Хотя тот факт, что вы работаете в системе без MMU, приводит меняподозреваю, что ошибочный пользовательский процесс растоптал часть памяти ядра.

0 голосов
/ 12 ноября 2010

это явно выглядит как повреждение кучи или стека, просто попробуйте поместить print в файл page_alloc.c, попробуйте напечатать адрес переменной, к которой обращаются перед строкой паники: 116, это даст вам некоторую подсказку, если кучаили произошло повреждение стека.

Если вы обнаружите, что это повреждение стека, попробуйте посмотреть, какая переменная объявлена ​​перед поврежденной переменной, так как это может быть переменной-виновником, это может помочь вам в отладке.

Если это повреждение кучи, то это что-то сложное для отладки, тогда вам нужно выяснить, выделяет ли некоторая переменная меньше памяти, но записывает больше данных, чем выделенных байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...