TSC の値を読み出すには RDTSC 命令を使えばよいので、C言語でインラインアセンブラを使って、少々記述すれば出来そうですが、既成のコマンドがありますので、備忘録として書いておきます。
[root@hoge ~]# date 2015年 11月 7日 土曜日 16:19:50 JST [root@hoge ~]# uptime 16:19:53 up 6:52, 3 users, load average: 0.06, 0.10, 0.13 [root@hoge ~]# lsmsr -r TSC TSC = 0x00003836cd3926f0このマシン(ThinkPad W520)の CPU は、Core i7 ですが、reboot するとリセットされる様子が読み取れます。
[root@hoge ~]# date 2015年 11月 7日 土曜日 16:22:18 JST [root@hoge ~]# uptime 16:22:20 up 1 min, 3 users, load average: 0.12, 0.07, 0.03 [root@hoge ~]# lsmsr -r TSC TSC = 0x0000003e244cb997 ※もしリセットされないなら、reboot 前より大きな値が見えるはずこのコマンドは、x86info というパッケージに収録されています。
[root@hoge ~]# which lsmsr /usr/sbin/lsmsr [root@hoge ~]# rpm -qf /usr/sbin/lsmsr x86info-1.30-6.el7.x86_64実際に Xeon E5 のマシンで、実験してみたいところですが、もちろん手元にはありませんので、以上です。
2018-04-20追記
すっかり忘れてましたが、最近 ThinkPad 25 (Core i7 7500U) を使っており、このマシンの場合はどうかなとやってみましたが、リセットされる動きでした。つまらんですが。
[root@hoge ~]# cat TSC-2018-04-20-0523 ※リブートする前に保存しておいた値 TSC = 0x000031fdec83f39e [root@hoge ~]# date 2018年 4月 20日 金曜日 05:29:00 JST [root@hoge ~]# lsmsr -r TSC TSC = 0x000000d8b709a561 [root@hoge ~]# grep i7 /proc/cpuinfo model name : Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz ...実際にリセットされないマシンを見てみたいものですが。。。
なお、lsmsr 以外に turbostat でも TSC を出せるようです。
[root@hoge ~]# date 2018年 4月 20日 金曜日 05:37:48 JST [root@hoge ~]# turbostat --Dump | grep TSC TSC: 0000023D87874404 TSC: 0000023D87881627 TSC: 0000023D878A4FB2 TSC: 0000023D878AF768 ※4つの論理CPU分出力されてます。当然ですが、読み出しタイミングがちょっとずつ後ろになってます。
0 件のコメント:
コメントを投稿