検討!目論見検討委員会

最近はコミケの締切情報メイン

uptimeのカウントできる限界

ちょっと調べたのでメモ。
linuxuptimeの変数(jiffies)の型がunsigned longのため、32bitまでしか計れなくて、約497日でリセットされる。
jiffiesは100で割ると秒になるんだって。へー。

32bitは、最高までカウントしたとして0xffffffff=4294967295なので、
4294967295/100/60/60/24≒497.1日

kernel 2.6は64bitらしいので、もっとでかい桁を計れる模様。
linuxのソース(CentOS 5.2のinclude/linux/jiffies.h)見たら、

extern u64 __jiffy_data jiffies_64;
extern unsigned long volatile __jiffy_data jiffies;

64bitのCPUの場合、64bitなのか?
Cはよく分からなかったりするのでこれ以上深入りしない。
ただ、大学の先輩のlinux機が800日くらいまで動いていた。

64bit型の変数でカウントしていた場合、計算は省くが、58億年くらいでカウンタがリセットされる。