kidle_inject usa poder de cpu sem razão aparente [duplicado]

21

Estou usando o Ubuntu 14.04 LTS em um laptop i5-3250M, 6GB de RAM Dell Inspiron. Eu tenho notado todo esse tempo do meu monitor de uso da CPU que há um alto uso da minha CPU (sem usar algo realmente intensivo) e isso leva ao superaquecimento.

Eu verifiquei no monitor do sistema, e no início parecia que minha placa gráfica era o problema (AMD Radeon 7670M - placa híbrida com Intel HD 4000). De qualquer forma, eu instalei o fglrx-updates (o único que realmente corrigiu o problema de superaquecimento - fglrx e xorg não ajudaram) e as coisas ficaram um pouco mais suaves.

Eu também instalei o intel p-state e thermal. Coloque-o no governador de poupança de energia, mas ainda sem sorte. Também instalado tlp (sem conflito entre eles).

Tentou ver se a falha é do compiz ou adobe-flash. Sem sorte. Além disso, HTML5 usa um monte de CPU depois de um pouco e fica tudo na minha comp.

Depois de fazer tudo isso, eu estava olhando os resultados do comando $ top e o culpado parece ser kidle_inject. Ele usa como 50% da CPU toda vez. Eu não pude deixar de notar que parecia que tinha quatro módulos - kidle_inject / 0 para kidle_inject / 3.

Então, o que é esse kidle_inject? Eu não consegui encontrar algo conclusivo sobre o assunto. Parece estar ligado quando eu uso algo que é recurso intensivo e continua monopolizando meu cpu por um minuto ou dois após o término do uso.

Como posso consertar isso para que meu comp seja útil finalmente? Eu estou falando sobre uma temperatura mínima de 70C em uso de baixo desempenho. Eu sou muito dependente do linux e gostaria de continuar usando o Ubuntu (já que estou muito acostumado com isso e eu gostei muito dele).

- Eu tenho que dizer que isso não é culpa da minha máquina. Quando é executado no Windows 7, ele está funcionando perfeitamente com baixas temperaturas.

    
por Fotis 12.06.2014 / 15:18

4 respostas

18

Como você ativou o estado Intel P (por meio de intel_pstate=enable in GRUB_CMDLINE_LINUX_DEFAULT ), você também ativou o driver do powerclamp. O driver da pinça de energia está trabalhando para tentar manter o processador em um estado de baixa energia, de modo que o consumo de energia seja reduzido, e não seja necessário muito resfriamento.

Para fazer isso, ele força cada thread na CPU a ficar ocioso por algum tempo, injetando tempo ocioso. Normalmente, esse valor é de 50%. Os 50% que você vê para cada um dos processos kidle_inject não estão realmente causando o trabalho da CPU; em vez disso, está dizendo para a CPU não fazer o trabalho, reduzindo assim o consumo de energia. Observe que o uso geral da CPU não inclui kidle-inject .

Como @ElderGeek observou, você pode dizer ao motorista para injetar uma quantidade menor de tempo ocioso. No entanto, eu tentei isso e não tive sucesso. Pode ser que o kernel não suporte ainda; pode ser que o powerclamp esteja ignorando o pedido.

    
por saiarcot895 12.06.2014 / 16:11
10

Eu acho que deve haver algum tipo de bug aqui, já que no meu sistema, o kidle_inject injeta 50% em todas as CPUs, então quando eu executo um único processo, ele só recebe os 50% restantes da CPU . rmmod intel_powerclamp corrige isso.

    
por Ketil 28.10.2015 / 15:31
3

Se você der uma olhada nos pontos de temperatura e viagem em

/sys/class/thermal/thermal_zone0/temp

e

/sys/class/thermal/thermal_zone0/trip_point_0_temp

você pode encontrar (como eu fiz e depois me encontrei nessa questão), que seu sistema está rodando tão bem que está gerenciando a temperatura injetando ciclos ociosos como @ elder-geek mencionado.

No meu caso, é o dia mais quente do ano até agora e meu fã falhou, mas meu laptop está sobrevivendo graças a esse recurso.

    
por Neale Upstone 18.07.2016 / 22:02
3

O driver da Powerclamp é registrado na camada térmica genérica como dispositivo de arrefecimento. Atualmente, não está vinculado a nenhuma zona térmica.

Aqui está um exemplo de um dos meus sistemas.

grep . /sys/class/thermal/cooling_device*/type

/sys/class/thermal/cooling_device0/type:Fan
/sys/class/thermal/cooling_device10/type:LCD
/sys/class/thermal/cooling_device1/type:Fan
/sys/class/thermal/cooling_device2/type:Fan
/sys/class/thermal/cooling_device3/type:Fan
/sys/class/thermal/cooling_device4/type:Fan
/sys/class/thermal/cooling_device5/type:Processor
/sys/class/thermal/cooling_device6/type:Processor
/sys/class/thermal/cooling_device7/type:Processor
/sys/class/thermal/cooling_device8/type:Processor
/sys/class/thermal/cooling_device9/type:intel_powerclamp

Exemplo de uso: - Para injetar 25% de tempo ocioso:

sudo sh -c "echo 25 > /sys/class/thermal/cooling_device9/cur_state

fonte: link

    
por Elder Geek 12.06.2014 / 15:27