
Lo que entiendo hasta ahora es que cuando un programa abre y lee cualquier archivo /proc/
, el núcleo generará la información sobre la marcha. En el caso específico de cpuinfo
la mayoría de esos datos están determinados por el hardware y obviamente no van a cambiar mientras el sistema esté en ejecución. De lo que no estoy seguro es sitodode esos datosno puedocambiar mientras el sistema está funcionando.
¿Es posible /proc/cpuinfo
cambiar alguno de los valores devueltos sin tener que reiniciar el sistema?
Respuesta1
Sí. Por un lado, el cpu MHz
campo cambiará muy a menudo ya que muestra elactualvelocidad de su CPU. Por ejemplo, en mi 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
El comando anterior imprimirá la cpu MHz
línea de mi primera CPU 10 veces. Como puede ver arriba, eso resultó en 2 valores separados, y esto sin siquiera agregar tiempo de espera. Puede esperar que este campo cambie muy a menudo. No creo que ninguno de los otros valores cambie y ninguno lo hizo en mis pruebas, pero no puedo jurar eso.
Respuesta2
Depende de la arquitectura; el código relevante está aquí (para ARM):
http://lxr.free-electrons.com/source/arch/arm/kernel/setup.c#L1074
Nota: para ARM, parece que todos los campos deben permanecer constantes después de calcularlos; no hay cpu MHz
(referenciado por @terdon para su respuesta sobre su arquitectura).
Por ejemplo, aquí está el resultado en una 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