/proc/cpuinfoを開くにはなぜ17ミリ秒かかりますか?

/proc/cpuinfoを開くにはなぜ17ミリ秒かかりますか?

これを実行

strace -ff -tt perl -e 'open(A,"<","/proc/cpuinfo");'

これを考慮すると:

22:36:10.365187 openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
22:36:10.382061 ioctl(3, TCGETS, 0x7fffb127ea50) = -1 ENOTTY (Inappropriate ioctl for device)

/proc/cpuinfoメモリ内のファイルであり、遅いディスクにアクセスする必要はありません。開くにはなぜ17ミリ秒かかりますか?

アイドルシステムで10回テストしましたが、タイミングは非常に一貫していました。

$ uname -a
Linux hk 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

ベストアンサー1

カーネルバージョン4.12以降、以下をサポートするx86 CPUでAPERF/MPERF MSR/proc/cpuinfo、CPU周波数が正しく報告されているか(または少なくとも古い値が表示されていないか)確認するために電源を入れると、わずかな遅延が発生します。次のバージョンでは少し変更されました。cpufreq: x86: scale_cur_freq が期待どおりに動作するようにする(4.13、待ち時間の増加)そして再びx86/CPU: 常に /proc/cpuinfo に現在の CPU 周波数を表示します。(4.14、待ち時間の短縮)。

おすすめ記事