jiffies
jiffies记录了系统启动以来,经过了多少tick。
一个tick代表多长时间,在内核的CONFIG_HZ中定义。比如CONFIG_HZ=200,则一个jiffies对应5ms时间。所以内核基于jiffies的定时器精度也是5ms。
jiffies的初始值并不是0,而是300s后即将溢出的的值。这是为了存在溢出问题的情况下,尽早暴露问题。
arch/arm/kernel/vmlinux.lds.S:
jiffies = jiffies_64;
include/linux/jiffies.h:
/*
* Have the 32 bit jiffies value wrap 5 minutes after boot
* so jiffies wrap bugs show up earlier.
*/
#define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))
kernel/timer.c:
u64 jiffies_64 __cacheline_aligned_in_smp = INITIAL_JIFFIES;
EXPORT_SYMBOL(jiffies_64);