Trabalho realizado por engenheiros do Google e outros em torno do mecanismo de sincronização de atualização de leitura e cópia (RCU) do kernel Linux para torná-lo”mais preguiçoso”está ajudando com 5 a 10% de economia de energia para sistemas ociosos ou com pouca carga. Este trabalho”Lazy RCU”provavelmente será mesclado para a janela de mesclagem do kernel Linux 6.2 em dezembro.

Os engenheiros do Google estão trabalhando nessa implementação de”RCU preguiçoso”, já que o mecanismo de RCU pode ser um grande consumidor de energia em sistemas alimentados por bateria. Lazy RCU é sobre o lote de retornos de chamada RCU e, em seguida, liberando-os após um atraso cronometrado ou atingindo a pressão da memória. Em setembro, na Linux Plumbers Conference em Dublin, houve uma apresentação do engenheiro do Google Joel Fernandes, Rushikesh Kadam da Intel e Uladzislau Rezki da Sony sobre este trabalho de otimização do Linux RCU:

Há também o conjunto de slides (PDF) dessa apresentação.

A história curta para os usuários finais do Linux é que o trabalho do Lazy RCU pode fornecer 5 a 10% de economia de energia para sistemas ociosos ou levemente carregados por essa funcionalidade lenta/em lotes. Da série de patches Lazy RCU resumindo:

Implemente o lote de retorno de chamada RCU baseado em timer (também conhecido como retorno de chamada lento). Com isso economizamos cerca de 5-10% de energia consumida devido a solicitações de RCU que acontecem quando o sistema está levemente carregado ou ocioso.

Por padrão, todos os retornos de chamada assíncronos (enfileirados via call_rcu) são marcados como lentos. Uma API alternativa call_rcu_flush() é fornecida para os poucos usuários, por exemplo,sync_rcu(), que precisam do comportamento antigo.

O lote é liberado sempre que um determinado período de tempo passa ou o lote em uma determinada CPU fica muito grande. Além disso, a pressão da memória o liberará em um patch futuro.

Ótimo trabalho de Joel Fernandes e dos demais envolvidos.
Desde o evento LPC, o mantenedor do RCU Paul McKenney na semana passada enviou o patches de RCU preguiçosos como material destinado ao Linux 6.2. Portanto, a menos que surjam alguns problemas no código, a funcionalidade Lazy RCU provavelmente será mesclada para o Linux 6.2 com sua janela/ciclo de mesclagem começando em dezembro e chegando à estabilidade no início de 2023.

Especialmente com os preços de energia crescentes de hoje, ser interessante ver como esse trabalho de otimização ocioso e levemente carregado ajuda o Linux em uma variedade de dispositivos. Trabalharei em benchmarks quando o ciclo do Linux 6.2 se aproximar.

Categories: IT Info