Unter welchen Umständen, wenn überhaupt, ändert sich das Ergebnis des Lesens von /proc/cpuinfo?

Unter welchen Umständen, wenn überhaupt, ändert sich das Ergebnis des Lesens von /proc/cpuinfo?

Soweit ich es bisher verstanden habe, /proc/generiert der Kernel die Informationen sofort, wenn ein Programm eine Datei unter öffnet und liest. Im konkreten Fall von cpuinfowerden die meisten dieser Daten von der Hardware bestimmt und ändern sich offensichtlich nicht, während das System läuft. Ich bin mir jedoch nicht sicher, oballedieser Datenkann nichtändern, während das System läuft.

Ist es möglich, die zurückgegebenen Werte /proc/cpuinfozu ändern, ohne dass das System neu gestartet werden muss?

Antwort1

Ja. Zum einen cpu MHzwird sich das Feld sehr oft ändern, da es dieaktuellGeschwindigkeit Ihrer CPU. Auf meinem System beispielsweise:

$ 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

Der obige Befehl druckt die cpu MHzZeile meiner ersten CPU zehnmal aus. Wie Sie oben sehen können, ergab das zwei separate Werte, und das ohne Wartezeit. Sie können davon ausgehen, dass sich dieses Feld sehr oft ändert. Ich glaube nicht, dass sich die anderen Werte ändern werden, und bei meinen Tests hat sich auch keiner geändert, aber das kann ich nicht schwören.

Antwort2

Es ist architekturabhängig – der relevante Code ist hier (für ARM):

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

Hinweis: Bei ARM scheint es so, als ob alle Felder nach der Berechnung konstant bleiben sollten – das gibt es nicht cpu MHz(verwiesen wird auf die Antwort von @terdon zu seiner Architektur).

Hier ist beispielsweise die Ausgabe auf einem 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

verwandte Informationen