Dans quelles circonstances, le cas échéant, le résultat de la lecture / proc / cpuinfo changera-t-il?

Ce que je comprends jusqu'à présent, c'est que lorsqu'un programme s'ouvre et lit n'importe quel file sous /proc/ , le kernel générera l'information à la volée. Dans le cas particulier de cpuinfo plupart de ces données sont déterminées par le matériel et ne changeront évidemment pas pendant l'exécution du système. Ce dont je ne suis pas sûr, c'est si toutes ces données ne peuvent pas changer pendant que le système fonctionne.

Est-il possible que l'une des valeurs returnnées par /proc/cpuinfo soit modifiée sans que le système doive être redémarré?

Oui. D'une part, le champ cpu MHz changera très souvent puisqu'il montre la vitesse actuelle de votre CPU. Par exemple, sur mon système:

 $ 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 

La command ci-dessus va imprimer la ligne CPU de mon premier CPU 10 fois. Comme vous pouvez le voir ci-dessus, cela a donné lieu à 2 valeurs distinctes, sans append de time d'attente. Vous pouvez vous attendre à ce que ce champ change très souvent. Je ne pense pas que l'une des autres valeurs est susceptible de changer et aucune n'a fait dans mes tests, mais je ne peux pas jurer à cela.

Il dépend de l'architecture – le code correspondant est ici (pour ARM):

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

Note: pour ARM, il semble que tous les champs doivent restr constants après leur calcul – il n'y a pas de cpu MHz (référencé par @terdon pour sa réponse sur son architecture).

Par exemple, voici la sortie sur un 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