Um problema de longa data com a instrução MWAIT está finalmente recebendo correção no kernel Linux para os servidores Intel Xeon Ice Lake. Embora o bug tenha sido documentado oficialmente pela Intel desde 2022, apenas agora o Linux está se preparando para mitigar o comportamento anômalo com um patch que será incluído nas próximas versões do kernel.
Bug do MWAIT pode causar travamentos em servidores Ice Lake
A falha afeta especificamente o funcionamento das instruções MONITOR/MWAIT, que são utilizadas para economizar energia ao colocar o processador em modo de espera até que uma determinada região de memória seja alterada. No entanto, nos Xeon Scalable de 3ª geração (“Ice Lake”), a instrução MONITOR pode não ser corretamente acionada após um MWAIT, levando a congelamentos do sistema.
Essa mesma falha já havia sido observada em outros processadores Intel, como os Goldmont Atom e os recém-lançados Lunar Lake para laptops. Em todos os casos, o kernel Linux precisou de salvaguardas específicas para evitar o uso inseguro do MWAIT.
Detecção do problema e aplicação do patch
O problema voltou a chamar atenção após Andrew Cooper, desenvolvedor do Xen Project, relatar falhas na inicialização de servidores Ice Lake ao rodar Xen. A investigação apontou que os processadores não estavam saindo corretamente do modo de espera, devido à falha do MWAIT.
Com isso, foi enviado um patch ao LKML adicionando os Ice Lake à lista de CPUs com “implementações instáveis” da instrução MONITOR. O patch também menciona que, até o momento, nenhum caso foi relatado no Linux, mas o ideal é prevenir, já que o problema é conhecido e documentado pela própria Intel no erratum ICX143.
“Considere os processadores Ice Lake como bugados, já que existe errata publicada. […] Adicione Ice Lake à lista de implementações MONITOR instáveis sem solução alternativa.” — diz o commit.
Correção prevista para o kernel 6.15 com backport
O patch deve ser incluído nos próximos dias no ramo de correções do kernel Linux 6.15 e possivelmente será retroportado para versões anteriores mantidas pela comunidade. A expectativa é que futuras gerações de CPUs Intel não repitam esse problema de confiabilidade com MONITOR/MWAIT, que afeta principalmente ambientes virtualizados e uso de recursos de economia de energia.