linux内核配置系统时间,Linux内核时间管理子系统——timekeeping

/* Structure holding internal timekeeping values. */

struct timekeeper {

/* Current clocksource used for timekeeping. */

struct clocksource *clock;

/* NTP adjusted clock multiplier */

u32 mult;

/* The shift value of the current clocksource. */

u32 shift;

/* Number of clock cycles in one NTP interval. */

cycle_t cycle_interval;

/* Last cycle value (also stored in clock->cycle_last) */

cycle_t cycle_last;

/* Number of clock shifted nano seconds in one NTP interval. */

u64 xtime_interval;

/* shifted nano seconds left over when rounding cycle_interval */

s64 xtime_remainder;

/* Raw nano seconds accumulated per NTP interval. */

u32 raw_interval;

/* Current CLOCK_REALTIME time in seconds */

u64 xtime_sec;

/* Clock shifted nano seconds */

u64 xtime_nsec;

/* Difference between accumulated time and NTP time in ntp

* shifted nano seconds. */

s64 ntp_error;

/* Shift conversion between clock shifted nano seconds and

* ntp shifted nano seconds. */

u32 ntp_error_shift;

/*

* wall_to_monotonic is what we need to add to xtime (or xtime corrected

* for sub jiffie times) to get to monotonic time. Monotonic is pegged

* at zero at system boot time, so wall_to_monotonic will be negative,

* however, we will ALWAYS keep the tv_nsec part positive so we can use

* the usual normalization.

*

* wall_to_monotonic is moved after resume from suspend for the

* monotonic time not to jump. We need to add total_sleep_time to

* wall_to_monotonic to get the real boot based time offset.

*

* - wall_to_monotonic is no longer the boot time, getboottime must be

* used instead.

*/

struct timespec wall_to_monotonic;

/* Offset clock monotonic -> clock realtime */

ktime_t offs_real;

/* time spent in suspend */

struct timespec total_sleep_time;

/* Offset clock monotonic -> clock boottime */

ktime_t offs_boot;

/* The raw monotonic time for the CLOCK_MONOTONIC_RAW posix clock. */

struct timespec raw_time;

/* The current UTC to TAI offset in seconds */

s32 tai_offset;

/* Offset clock monotonic -> clock tai */

ktime_t offs_tai;

};

clocksource

指向当前使用的时钟源。

xtime_sec, xtime_nsec

墙上时间(wall clock)。xtime_sec代表墙上时间的秒部分,xtime_nsec是墙上时间的纳秒部分左移timekeeper->shift位(注意是左移后的值)。

wall_to_monotonic, offs_real

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值