O Google está trabalhando muito para detectar proativamente defeitos de software nos principais projetos de código aberto. Mas agora eles estão desenvolvendo um sistema SiliFuzz que detectará defeitos em unidades centrais de processamento.

Como funciona o SiliFuzz é analisar o desempenho do processador executando dados de teste pré-preparados coletados usando emuladores e desmontadores. Este é um dos tipos de difusão – o processador é carregado com cálculos “aleatórios”, cujo resultado é verificado na saída. Se houver uma discrepância, o processador é considerado com defeito.

O sistema é projetado para detectar, em primeiro lugar, defeitos elétricos de chips que podem surgir durante a produção, instalação, operação, etc. É dada atenção especial a eles, e não a erros lógicos nas próprias CPUs. Ao mesmo tempo, os próprios testes não usam nenhum mecanismo de depuração de baixo nível, o que permite que sejam usados ​​em sistemas de “combate”.

Na verdade, a tarefa dos desenvolvedores é criar um sistema que possa testar regularmente cada núcleo em cada servidor do Google, com impacto mínimo em seu desempenho. Em sua forma atual, o SiliFuzz seleciona o momento em que a carga em uma determinada máquina não é tão grande e testa sequencialmente grupos de quatro threads (2 núcleos com SMT) por no máximo dois minutos. Até agora, os desenvolvedores são guiados por processadores x86-64, que são amplamente usados ​​pelo próprio Google.

O principal objetivo do projeto é automatizar a detecção de defeitos ocultos que levam a cálculos incorretos e que são muito mais perigosos do que as falhas e travamentos comuns, já que apenas pequenos desvios no funcionamento do chip levam ao acúmulo de uma série de erros. Assim, por exemplo, descobriu-se que algumas CPUs às vezes retornavam resultados incorretos da chamada F2XM1 (x2-1), enquanto outras forneciam cálculos FCOS periodicamente que diferiam dos corretos. Neste último caso, a diferença é inferior a 0,0000003%, mas isso pode ser suficiente para problemas.

Conforme observado, cerca de 45% dos defeitos encontrados usando SiliFuzz não são rastreados por outras ferramentas. No futuro, os desenvolvedores planejam dimensionar o SiliFuzz, aumentar a velocidade do programa e, em geral, melhorar a qualidade do trabalho.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *