{関連ソース}
http://lxr.linux.no/#linux+v3.0.1/kernel/timer.c#L1520
1520int do_sysinfo(struct sysinfo *info)
...
1528 ktime_get_ts(&tp);
1529 monotonic_to_bootbased(&tp);
1530 info->uptime = tp.tv_sec + (tp.tv_nsec ? 1 : 0);
http://lxr.linux.no/#linux+v3.0.1/fs/proc/uptime.c
20 do_posix_clock_monotonic_gettime(&uptime);
21 monotonic_to_bootbased(&uptime);
http://lxr.linux.no/#linux+v3.0.1/include/linux/time.h#L153
153#define do_posix_clock_monotonic_gettime(ts) ktime_get_ts(ts)
{メモ}
ktime_get_ts() , do_posix_clock_monotonic_gettime()
monotonic time を得る
monotonic_to_bootbased()
suspend中の時間を加えて、uptimeに変換する
xtime
wall_clock
monotonic time
Monotonic is peggedat zero at system boot time
(bootからの時間。ただし、suspend中の時間を除く。)
wall_to_monotonic
monotonic_time == xtime + wall_to_monotonic
(通常、マイナスの値になる。)
total_sleep_time
uptime == xtime + wall_to_monotonic + total_sleep_time
(suspendしていた時間の合計。bootからの時間であるuptimeを計算する際に使う)
boottime(bootした時刻)
boottime == xtime - uptime になることから、
== - ( wall_to_monotonic + total_sleep_time ) という計算結果が得られる。
2011年8月9日火曜日
/proc/uptimeとsysinfoのuptimeは同じだと思う
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿