¿Bajo qué circunstancias, si las hay, cambiará el resultado de la lectura de /proc/cpuinfo?

¿Bajo qué circunstancias, si las hay, cambiará el resultado de la lectura de /proc/cpuinfo?

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 cpuinfola 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/cpuinfocambiar alguno de los valores devueltos sin tener que reiniciar el sistema?

Respuesta1

Sí. Por un lado, el cpu MHzcampo 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 MHzlí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

información relacionada