LINUX.ORG.RU

А чем есть возможность дебага? Если есть jtag, то там есть способ переключения ядер.

Если нет jtag, то остается вариант с KGDB/KDB. Гуглить kgdboc, kgdboe. В KDB есть команда cpu, а если через kgdb, то процессоры там как потоки должны быть представлены, если ничего не путаю.

Третий вариант запустить по таймеру на каждом ядре, и из каждого проверять зависло ли соседнее ядро. Если зависло, вызываем smp_call_function_single() и распечатываем дамп регистров от туда. На армах smp_call* работает через IPI прерывания, если всё очень плохо, то такой вариант (как и с kgdb/kdb, так как там тоже процессоры входят в kdb через IPI) может и не сработать.

hexdump01010101
()
Ответ на: комментарий от hexdump01010101

считаем что в нашей ситуации линукса нет. сейчас есть идея писать в память SP второго проца а после зависания вычитать память через jtag. зависание редкое и воспроизводится долго

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

А что вообще значит «зависает»? Если есть jtag, то зачем что-то в память записывать? Или при таком зависании даже jtag не способен переключиться на нужный CPU?

Если так, то да, остается только вариант логировать (постоянно записывать куда-то) значения sp/pc.

hexdump01010101
()

А если Watchdog замутить? Есть ли такая возможность?

Т.е. если что - то там зависнет, по сработает прерывание от вачдога и в обработчике этого прерывания можно попробовать залогировать куда нить состояние SP, например в EEPROM...

Ведь должно же быть какое-то прерывание при таком раскладе «зависания ядра»?

PS: хз, получится или нет - это просто мысля.

kuzulis ★★
()
Ответ на: комментарий от I-Love-Microsoft

это этап инициализации ядер на котором еще очень далеко как до драйверов таки до програм.

насколько я понимаю ситуацию в следствие выхода из трастед мира ядра 0 по левому адресу ядро 0 умирает на корню. тоесть jtag к нему не конектится. отсюдова я пытаюсь выяснить чем в этот момент занималось второе ядро и не перетерло ли оно адрес возврата.

cvv ★★★★★
() автор топика
Ответ на: комментарий от anonymous

очень ранний этап загрузки линукса.

cvv ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.