Linus Torvalds recorre à IA para encontrar bug difícil em GPU Intel no Linux
Notícias

Linus Torvalds recorre à IA para encontrar bug difícil em GPU Intel no Linux

Acesse nossos conteúdos exclusivos!

O uso de inteligência artificial no desenvolvimento de software ainda provoca bastante discussão, especialmente quando o assunto é código crítico. Mas, enquanto o debate continua, a tecnologia já está sendo incorporada ao trabalho de desenvolvedores experientes. E agora temos um exemplo particularmente interessante: Linus Torvalds usou IA para investigar um bug no driver gráfico Intel Xe do kernel Linux.

O caso envolveu um problema de corrupção de memória que afetava o gerenciamento de VRAM e chegou a deixar o computador de Torvalds com a tela preta. Encontrar a causa, porém, foi muito mais complicado do que corrigir o problema.

Um bug que deixava o Linux com a tela preta

O problema estava relacionado ao tratamento da memória Flat CCS pelo driver DRM Xe, utilizado pelas GPUs Intel mais recentes. No computador de Torvalds, equipado com uma GPU Intel Battlemage G21 e 16 GB de VRAM, o erro fazia o GDM, responsável pela tela de login e sessão gráfica, reiniciar continuamente.

O resultado era uma máquina que aparentemente funcionava, mas permanecia presa em uma tela preta. A origem do problema estava na função get_flat_ccs_offset(), responsável por calcular onde começa uma área reservada da memória usada pelo mecanismo de compressão da GPU.

Depois de calcular o endereço, o código arredondava o valor para cima, usando round_up(), antes de informar ao alocador de VRAM que toda a região anterior estava disponível.

Só que aquela pequena diferença entre o endereço real e o endereço arredondado também fazia parte da memória reservada para o CCS. O kernel acabava entregando ao sistema uma região que pertencia ao hardware.

18 inicializações até encontrar a causa

O problema era particularmente difícil de reproduzir e diagnosticar. Segundo Torvalds, a investigação exigiu 24 patches diferentes apenas para adicionar informações de depuração e nada menos que 18 inicializações do kernel.

A cada tentativa, mais dados eram coletados para descobrir o que estava acontecendo com a memória. Foi nesse processo que a IA entrou em cena. Torvalds conta que utilizou a ferramenta para realizar boa parte do trabalho repetitivo da investigação, principalmente adicionando código de depuração e analisando os resultados obtidos a cada teste. A experiência, entretanto, não foi exatamente tranquila.

A IA também quis desistir

Em determinado momento, a inteligência artificial chegou repetidamente à conclusão de que o problema era impossível de solucionar e sugeriu que seria melhor simplesmente documentar o comportamento em um relatório. Torvalds, obviamente, não aceitou a resposta.

Ao ser pressionada a continuar, a IA seguiu adicionando instrumentação ao código e analisando os resultados. Foi dessa maneira que a investigação acabou chegando à origem da corrupção de memória. O próprio Torvalds descreveu a experiência como uma “sessão de depuração do inferno”, mas reconheceu que a IA fez grande parte do trabalho braçal.

Depois de descobrir a causa, ele ainda permitiu que a ferramenta escrevesse a mensagem de commit que documenta a correção.

No fim, tudo se resumiu a uma linha

Depois de todo esse trabalho, a correção efetiva foi praticamente um one-liner. Em vez de arredondar o endereço da memória para cima, o código deveria arredondá-lo para baixo, usando round_down().

No sistema de Torvalds, isso fazia com que uma página inteira deixasse de ser entregue ao alocador de VRAM. E aquela página era justamente onde o hardware estava gravando seus dados de compressão.

A alteração evita que o kernel trate a memória reservada para o CCS como espaço disponível. O caso também revelou que uma verificação existente no código não conseguia detectar o problema nas condições em que ele realmente acontecia, tornando a investigação ainda mais complicada.

O que isso diz sobre a relação de Torvalds com IA?

O episódio é interessante também porque reforça uma posição que Torvalds vem adotando gradualmente sobre inteligência artificial. Em vez de tratar IA como algo que deve ser aceito ou rejeitado por princípio, ele parece cada vez mais interessado em encará-la como mais um instrumento de desenvolvimento.

Isso não significa confiar cegamente nas respostas produzidas pelo modelo. Na própria investigação, a IA errou, chegou a declarar o problema insolúvel e precisou ser direcionada por Torvalds.

A diferença é que ele tinha conhecimento suficiente para perceber que aquelas conclusões não faziam sentido e insistir na investigação. A IA ajudou a encontrar um bug extremamente difícil, mas não encontrou a solução sozinha.

Foram 24 patches de depuração, 18 boots e bastante conhecimento técnico para transformar uma investigação aparentemente impossível em uma correção de uma linha. No fim, até Linus Torvalds pode usar IA para programar. Mas isso não significa que ele tenha deixado de ser necessário para saber quando a IA está errada.

Fique por dentro das principais novidades da semana sobre tecnologia e Linux: receba nossa newsletter!

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!