Sob quais circunstâncias, se houver, o resultado da leitura de /proc/cpuinfo mudará?

Sob quais circunstâncias, se houver, o resultado da leitura de /proc/cpuinfo mudará?

O que entendi até agora é que quando um programa abre e lê qualquer arquivo em /proc/, o kernel irá gerar as informações instantaneamente. No caso específico, cpuinfoa maior parte desses dados é determinada pelo hardware e obviamente não vai mudar enquanto o sistema estiver em execução. O que não tenho certeza é setodosdesses dadosnão podemudar enquanto o sistema está em execução.

/proc/cpuinfoÉ possível alterar algum dos valores retornados sem que o sistema precise ser reiniciado?

Responder1

Sim. Por um lado, o cpu MHzcampo mudará com muita frequência, pois mostra oatualvelocidade 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 cpu MHzlinha da minha primeira CPU 10 vezes. Como você pode ver acima, isso resultou em 2 valores separados, e isso sem sequer adicionar nenhum tempo de espera. Você pode esperar que esse campo mude com muita frequência. Não acho que nenhum dos outros valores mude e nenhum mudou em meus testes, mas não posso jurar isso.

Responder2

Depende da arquitetura - o código relevante está aqui (para ARM):

http://lxr.free-electrons.com/source/arch/arm/kernel/setup.c#L1074

Nota: para ARM, parece que todos os campos devem permanecer constantes após serem computados - não existe cpu MHz(referenciado por @terdon por sua resposta sobre 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

informação relacionada