Campo variável de núcleos cpu no redhat enterprise 7.5 kernel 3.10.0-862.el7?

0

Estamos vendo um fenômeno estranho em um de nossos servidores em que o /proc/cpuinfo está emitindo valores diferentes para os campos "cpu core" com frequência. /proc/cpuinfo corretamente diz que há 8 processadores (1 físico x 4 núcleos x 2 hyperthreading), entretanto o campo cpu-cores pode ser 4 (correto) ou 65531, 65528, ... (não muito correto). Parece ser os mesmos CPUs virtuais que relatam os números ruins.

Por que nos importamos? Bem, uma de nossas bibliotecas de terceiros está usando impressões digitais de /proc/cpuinfo para seu licenciamento e, portanto, está gerando falhas porque o número de núcleos está mudando.

  • Alguém já viu isso antes?
  • Alguma ideia se é um hardware ou um bug do sistema operacional?
  • Alguma recomendação sobre como diagnosticar e resolver o problema?

Obrigado por qualquer informação.

Veja um exemplo de saída do /proc/cpuinfo :

cpu cores   : 4
cpu cores   : 20
cpu cores   : 20
cpu cores   : 20
cpu cores   : 4
cpu cores   : 4
cpu cores   : 4
cpu cores   : 65528
    
por Gray 11.06.2018 / 16:48

1 resposta

0

Embora não tenhamos todas as informações, neste momento isso parece um bug do kernel do Linux. Aqui está o compromisso no github que parece ter sido feito para corrigir esse problema. As tags parecem indicar que essa correção está nos kernels 4.16.X. Aqui está o comentário do commit:

Without this fix, /proc/cpuinfo will display an incorrect amount of CPU cores, after bringing them offline and online again, as exemplified below...

This patch fixes this by always zeroing the booted_cores variable upon turning off a logical CPU.

Isto parece ser devido a caixa de dormir na ocasião, embora também estamos preocupados com o recurso "turbo-boost", que também desativa núcleos. Estamos desligando os modos de suspensão e hibernação agora que podem consertá-lo, já que a atualização do kernel não é uma opção fácil para nós.

Até o momento, testamos as configurações a seguir no grub que não parece funcionar ou pelo menos não impediu o computador de dormir e ter esse problema.

intel_idle.max_cstate=0
processor.max_cstate=1

Também encontramos esta página sobre desativar o turbo-boost .

    
por 11.06.2018 / 19:14

Tags