linux 内核启动时间
Time from startup in linux kernel
我想检索自内核启动以来经过的时间(在内核 space 中)。它应该是 printk();
使用的时间匹配(例如:[ 5.832000] message
)。
jiffies
提供不同的时间,所以我不确定它是否适合我。
我怎样才能做到这一点?
使用 get_monotonic_boottime
怎么样? jiffies
初始化为开机前 5 分钟,以确保开机后立即溢出并检测错误。
printk implementation lies in kernel/printk/printk.c souce file.
Here it uses following structure before writing log into buffer which we see in console.
struct printk_log {
u64 ts_nsec; /* timestamp in nanoseconds */
u16 len; /* length of entire record */
u16 text_len; /* length of text buffer */
u16 dict_len; /* length of dictionary buffer */
u8 facility; /* syslog facility */
u8 flags:5; /* internal record flags */
u8 level:3; /* syslog level */
};
ts_nsec -> This parameter is set by function "local_clock" which in turn calls "Sched_clock" [ defined in /kernel/sched/clock.c ].
unsigned long long __weak sched_clock(void)
{
return (unsigned long long)(jiffies - INITIAL_JIFFIES)
* (NSEC_PER_SEC / HZ);
}
#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))
i think this will give you more insight about the printk logging
我想检索自内核启动以来经过的时间(在内核 space 中)。它应该是 printk();
使用的时间匹配(例如:[ 5.832000] message
)。
jiffies
提供不同的时间,所以我不确定它是否适合我。
我怎样才能做到这一点?
使用 get_monotonic_boottime
怎么样? jiffies
初始化为开机前 5 分钟,以确保开机后立即溢出并检测错误。
printk implementation lies in kernel/printk/printk.c souce file.
Here it uses following structure before writing log into buffer which we see in console.
struct printk_log {
u64 ts_nsec; /* timestamp in nanoseconds */
u16 len; /* length of entire record */
u16 text_len; /* length of text buffer */
u16 dict_len; /* length of dictionary buffer */
u8 facility; /* syslog facility */
u8 flags:5; /* internal record flags */
u8 level:3; /* syslog level */
};
ts_nsec -> This parameter is set by function "local_clock" which in turn calls "Sched_clock" [ defined in /kernel/sched/clock.c ].
unsigned long long __weak sched_clock(void)
{
return (unsigned long long)(jiffies - INITIAL_JIFFIES)
* (NSEC_PER_SEC / HZ);
}
#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))
i think this will give you more insight about the printk logging