ブックマーク / yukki.seesaa.net (1)

  • uptimeのデバッグ/497日問題: 時速2km

    巷にはこういった問題があるらしい。 【497日問題】 http://www.wdic.org/w/TECH/497%E6%97%A5 ざっくり言ってしまうと、 ・OSが時間を10ミリ秒単位で管理している。 ・OSの持っているmonotonicなタイマーがunsigned int(u32)あたりで定義してある。 といったような条件がそろっている場合に、起動してから連続稼動を続け、ちょうど497日程度経過したころに、タイマーの桁あふれが発生し、動作が不安定になる。 といった現象らしい。 じゃ、Linuxだったらどうなのか? Linux上のmonotonicなタイマーといえば、uptime(/proc/uptime)。 同じように497日経過したころに、uptimeがオーバーフローしてしまい、挙動がおかしくなってしまうことがあるのかどうかを、確認してみた。 1.まず、カーネル起動時に初期値として

  • 1