Linux otimiza CPUs Intel e resolve desperdício de energia em interrupções térmicas

Linux otimiza CPUs Intel e resolve desperdício de energia em interrupções térmicas

Uma nova modificação no código-fonte do kernel Linux promete melhorar o gerenciamento de energia e o desempenho de processadores Intel modernos. O ajuste altera a forma como o sistema operacional lida com avisos de temperatura do hardware, direcionando alertas para um único núcleo em vez de acordar todo o processador desnecessariamente.

A otimização foi enviada ao repositório de gerenciamento de energia do Linux por Ricardo Neri, engenheiro da Intel, e já foi aceita pelo mantenedor Rafael J. Wysocki. Com base nos registros de desenvolvimento, a novidade foi implementada sobre a versão 7.2-rc2 do kernel, indicando que o recurso estará disponível para os usuários nas próximas edições estáveis da série 7.2 em diante.

O problema do alerta em massa

Até agora, quando o processador atinge determinados limites de temperatura, o hardware dispara uma interrupção térmica em nível de pacote. Em sistemas sem suporte a ferramentas mais modernas de direcionamento, esse alerta funciona como um aviso em massa. O kernel repassa a interrupção para todos os núcleos lógicos ativos daquele processador.

O problema dessa abordagem é que apenas um núcleo precisa de fato processar a informação e tomar uma atitude. Despertar todos os outros núcleos gera um desperdício duplo. Primeiro, causa um aumento imediato no consumo de energia, o que afeta especialmente notebooks e processadores com arquitetura híbrida baseada em núcleos de alta performance. Segundo, cria atrasos na execução de outras tarefas e disputas de bloqueio no sistema operacional, reduzindo a eficiência geral da máquina.

Interrupções direcionadas e segurança contra falhas

Para resolver essa ineficiência, o patch adiciona suporte às interrupções térmicas direcionadas (Directed Package-level Thermal Interrupts ou DPTI). Quando o Linux identifica que o processador possui suporte a esse recurso por meio de um identificador específico de hardware, ele configura apenas o primeiro núcleo ativado no pacote para receber e tratar esses alertas térmicos.

Caso esse núcleo principal precise ser desativado pelo sistema operacional, o kernel seleciona automaticamente um novo núcleo para assumir a função. O processo de transição mantém o direcionamento ativo nos dois núcleos temporariamente até que o hardware confirme a mudança.

A equipe de desenvolvimento também incluiu um mecanismo de segurança para evitar falhas de comunicação durante a inicialização do computador. O sistema aguarda até 15 microssegundos por uma confirmação do processador. Se o hardware não reconhecer o comando de interrupção direcionada a tempo, o Linux cancela a operação e retorna imediatamente para o modo padrão de aviso em massa. Isso garante que a máquina continue operando sem travamentos e continue protegida contra superaquecimento.

Embora o material do patch foque no funcionamento arquitetural e não liste medições exatas em watts ou ganhos de processamento em benchmarks, a eliminação de despertamentos desnecessários representa uma evolução técnica bem-vinda para usuários corporativos e domésticos que utilizam hardware Intel recente. Sistemas equipados com processadores antigos que não suportam a tecnologia continuarão operando com o alerta de interrupção padrão.