O trabalho contínuo na solução alternativa do Linux para os Atomic Consoles e impressão encadeada é particularmente notável, pois é o último grande obstáculo antes que o suporte do kernel “RT” em tempo real possa ser implementado. Infelizmente, este trabalho ainda não está pronto para o novo ciclo do Kernel Linux 6.9, mas pelo menos algumas limpezas do printk estão sendo realizadas devido a problemas identificados durante o esforço dos Atomic Consoles .
O código printk no Kernel Linux 6.9 está passando por algumas limpezas e aprimoramentos de robustez graças ao trabalho contínuo em torno da impressão encadeada e dos Atomic Consoles .
Petr Mladek da SUSE explicou em uma solicitação pull que as alterações do Printk para o Kernel 6.9 melhoram o comportamento durante o pânico.
Os problemas foram encontrados ao testar as mudanças em andamento que introduzem Atomic Consoles e threads printk.
- O pr_flush() agora tem que esperar pelo último registro reservado em vez do último finalizado. Vale ressaltar que os registros são finalizados em ordem aleatória quando gerados por várias CPUs em paralelo.
- Registros não finalizados são ignorados durante o pânico. As mensagens impressas na CPU de pânico são sempre finalizadas. As mensagens impressas por outras CPUs podem nunca ser finalizadas quando as CPUs são interrompidas.
- Novas chamadas printk() são completamente bloqueadas em CPUs sem pânico. Os backtraces são impressos antes de entrar no modo de pânico. As mensagens posteriores apenas confundiriam as informações impressas pela CPU de pânico.
- O console_lock não é usado em console_flush_on_panic(). O código original fez try_lock()/console_unlock(). A parte de desbloqueio pode causar um impasse quando o pânico ocorre em um código do agendador.
- Correção da conversão do número de sequência de 64 bits para as Atomic operations de 32 bits.
Este trabalho do printk foi mesclado para o Kernel Linux 6.9. Esperamos que a funcionalidade dos consoles atômicos/sem bloqueio possa ser implementada este ano e que o código do kernel em tempo real finalmente chegue ao kernel principal do Linux em 2024.
Até a próxima !!
Nenhum comentário:
Postar um comentário