Por que tick_sched_timer usa tanta energia no Linux

Por que tick_sched_timer usa tanta energia no Linux

De acordo com meu powertop (no kernel 5.3.1):

Power est.              Usage       Events/s    Category       Description
 ...
  3.85 W      7,7 ms/s     437,0        Timer          tick_sched_timer

3,85W em um laptop é enorme, às vezes chega a 6W. Não vi isso em kernels anteriores (5.0.x). Alguém sabe como reduzir o uso de energia?

Responder1

tick_sched_timerfaz parte do agendador de CPU do kernel Linux. Nesse caso, provavelmente está indicando muitos context switchese cpu-wakeupsem seu sistema.

Se você estiver usando muita energia, é provável que algo em seu sistema esteja causando muitos context switchese/ou cpu-wakeups. -- Isso pode estar relacionado a um driver; como um driver GPU, bluetooth, wifi, etc. - onde há algum tipo de intervalo de atualização agressivo ou possivelmente um driver está disparando muitas interrupções de hardware ... No entanto, também pode ser causado por algum software userpsace. .. até mesmo o powertop distorcerá um pouco esses números.

Você pode ter algum sucesso desabilitando drivers (como bluetooth), quando não estiverem em uso (ou, se não forem usados, colocando-os completamente na lista negra). ou alterando os governadores da CPU e/ou usando vários métodos/estratégias de economia de energia... Dependendo de como o seu kernel está configurado, reduzir o cronômetro também pode economizar energia. Por exemplo, alguns kernels podem ser compilados com CONFIG_HZ_1000=y, enquanto outros podem ser compilados com CONFIG_HZ_250=y. o último deve economizar alguma energia.

Powertop pode fornecer indicações sobre qual é a causa; mas tick_sched_timernão é a causa raiz do consumo da bateria (é apenas um sintoma). Provavelmente é algum outro thread, tarefa ou processo; no kernel ou possivelmente no espaço do usuário.

Responder2

Um pouco atrasado para a festa, mas diminuí o uso da média acima de 2W para menos de 1 ajustando minhas configurações com tlpui.

Vá para Processador e marque as opções SCHED_POWERSAVE para ativar. Você também pode mexer nos vários ajustes de CPU dessa categoria.

Para CPUs Intel: vá para Gráficos e ajuste INTEL_GPU_FREQ para valores mais baixos, certifique-se de verificar o que está disponível usando sudo tlp-stat -gpreviamente.

Para CPUs AMD: vá para Gráficos e defina RADEON_POWER_PROFILE_ON_BAT e RADEON_DPM_STATE como baixo e bateria, respectivamente.

Desativar o Bluetooth também parece ajudar.

Obviamente, isso não é o ideal, pois o desempenho diminui um pouco, mas se você valoriza mais a vida útil da bateria do que o desempenho, siga em frente.

informação relacionada