Em que circunstâncias, se houver, o resultado da leitura / proc / cpuinfo será alterado?

6

O que eu entendo até agora é que quando um programa abre e lê qualquer arquivo sob /proc/ , o kernel irá gerar a informação na hora. No caso específico de cpuinfo , a maioria dos dados é determinada pelo hardware e, obviamente, não vai mudar enquanto o sistema estiver em execução. O que eu não tenho certeza é se todos desses dados não podem mudar enquanto o sistema está sendo executado.

É possível que qualquer um dos valores retornados de /proc/cpuinfo seja alterado sem que o sistema tenha que ser reiniciado?

    
por 01d55 30.10.2015 / 20:25

2 respostas

4

Sim. Por um lado, o campo cpu MHz mudará com muita frequência já que mostra a velocidade atual da sua CPU. Por exemplo, no meu sistema:

$ for i in {1..10}; do grep -m 1 MHz /proc/cpuinfo ; done
cpu MHz     : 1596.000
cpu MHz     : 1596.000
cpu MHz     : 1596.000
cpu MHz     : 1596.000
cpu MHz     : 2394.000
cpu MHz     : 2394.000
cpu MHz     : 1596.000
cpu MHz     : 1596.000
cpu MHz     : 2394.000
cpu MHz     : 2394.000

O comando acima irá imprimir a linha cpu MHz da minha primeira CPU 10 vezes. Como você pode ver acima, isso resultou em dois valores separados, e isso sem adicionar nenhum tempo de espera. Você pode esperar que esse campo mude com muita frequência. Eu não acho que nenhum dos outros valores provavelmente irá mudar e nenhum deles nos meus testes, mas eu não posso jurar sobre isso.

    
por 30.10.2015 / 22:15
3

É dependente de arquitetura - o código relevante está aqui (para ARM):

link

Nota: para o ARM, parece que todos os campos devem permanecer constantes depois de serem computados - não há cpu MHz (referenciado por @terdon por sua resposta em sua arquitetura).

Por exemplo, aqui está a saída em um Raspberry Pi:

pi@raspberrypi ~ $ cat /proc/cpuinfo
processor   : 0
model name  : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xc07
CPU revision    : 5

processor   : 1
model name  : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xc07
CPU revision    : 5

processor   : 2
model name  : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xc07
CPU revision    : 5

processor   : 3
model name  : ARMv7 Processor rev 5 (v7l)
BogoMIPS    : 38.40
Features    : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xc07
CPU revision    : 5

Hardware    : BCM2709
Revision    : a01041
Serial      : 000000002489fe23
    
por 30.10.2015 / 22:24