
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, cpuinfo
a 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 MHz
campo 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 MHz
linha 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