FERRAMENTAS LINUX: O Printk do Kernel Linux 5.19 está para descarregar as mensagens para o KThreads por console

terça-feira, 24 de maio de 2022

O Printk do Kernel Linux 5.19 está para descarregar as mensagens para o KThreads por console

 

Confira !!

A função printk() do kernel do Linux para imprimir mensagens no log do kernel continua a ser aprimorada em 2022.

Nos últimos anos, houve um esforço para melhorar o printk do Linux com vários refinamentos para torná-lo mais robusto e confiável para este função de kernel usada. Os frutos mais recentes desse trabalho foram fazer com que os consoles funcionassem a toda velocidade na criação de um encadeamento para cada console registrado . Com o Kernel Linux 5.19 esse material está chegando.

Enviado para o Kernel Linux 5.19 é o suporte para escrita offload de mensagens printk() em consoles para KThreads por console. Petr Mladek do SUSE explicou:

Descarregue a gravação de mensagens printk() em consoles para kthreads por console.

Evita soft-lockups quando uma grande quantidade de mensagens é impressa. Foi observado, por exemplo, durante a inicialização de grandes sistemas com muitos periféricos como discos ou interfaces de rede.

Ele evita travamentos ao vivo que foram observados, por exemplo, quando mensagens sobre falhas de alocação foram relatadas e uma CPU manipulava consoles em vez de recuperar a memória. Foi difícil resolver mesmo com limitação de taxa porque precisaria levar em conta a quantidade de mensagens e a velocidade de todos os consoles.

É uma obrigação ter em tempo real. Caso contrário, qualquer printk() pode quebrar as garantias de latência.

Os kthreads por console permitem lidar com cada console em sua própria velocidade. Os consoles lentos não desaceleram mais os mais rápidos. E printk() não desacelera mais de forma imprevisível vários caminhos de código.

Existem situações em que os kthreads não estão disponíveis ou não são confiáveis, por exemplo, inicialização antecipada, suspensão ou pânico. Nessas situações, printk() usa o modo legado e tenta manipular os consoles imediatamente.

Veja este pull request para mais detalhes e viva para continuar melhorando printk() em 2022.






Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário