Como depurar o Linux travar?

1

Estamos usando a placa customizada baseada em beagle bone black, com a versão do kernel 3.12.
Estamos enfrentando sistema travar durante um dos script de init, (que traz até WiFi)
esse travamento acontece após um número aleatório de ciclo de energia,

Nothing works during this hang, it looks like system is frozen, It doesn't even respond to sysrq keys

Suponho que isso esteja no código ISR, porque nada disso funciona.

Unluckily Quando habilitamos 'Detectar tarefa interrompida ( DETECT_HUNG_TASK )' não vemos o problema. : (

A única coisa que funciona é se o watchdog estiver ativado depois que o temporizador watchdog expirar, ele reinicia o sistema e o sistema é recuperado.

No entanto, queremos descobrir onde está o problema.

Alguma sugestão?

Eu pensei em usar softdog e par de script de reparo para imprimir algumas mensagens, mas eu suponho que a interrupção externa terá maior prioridade e quando ele for executado e travar lá, o temporizador de softdog também não terá a chance de executar certo?

Aleatoriedade do bug torna muito mais difícil depurar: (

Qualquer ajuda apreciada.

    
por AnkurTank 06.06.2016 / 08:16

1 resposta

0

Bem, fizemos a leitura do código como estava sendo sugerido nos comentários e encontramos a seção do patch onde o sistema pode entrar em loop infinito (em irq) e não sairá dele.

No entanto, quando colocamos o printk nessa função irq, o problema não estava sendo reproduzido. (problema de tempo que você sabe!)

Então, finalmente, meu colega tentou o método da velha escola para alternar o GPIO e ajudou. Isso também foi difícil, já que mais de duas entradas da alternância de GPIO impediriam a reprodução.

dentro da função ele usou o GPIO como segue,

func()
{  
   //set gpio high
     some doubtfull code..
     ....
   //set gpio low
}  

Foi assim que ele rastreou o código problemático e sua solução está disponível no linux-4.1 e ele está testando.

@ShankarSM: Se você está lendo isso, todo o crédito vai para você rastreá-lo: -)

    
por 08.06.2016 / 12:53