2024年6月14日发(作者:)

Linux全局变量jiffies的用法

jiffies是Linux系统中的全局变量,与时间有关,那么jiffies变量具体有哪些作用呢?

下面店铺就给大家介绍下Linux全局变量jiffies的用法,感兴趣的朋友不妨来了解下吧。

系统运行时间以秒为单位,等于jiffies/Hz。

注意,jiffies类型为无符号长整型(unsigned long),其他任何类型存放它都不正确。

将以秒为单位的时间转化为jiffies:

seconds * Hz

将jiffies转化为以秒为单位的时间:

jiffies / Hz

相比之下,内核中将秒转换为jiffies用的多些。

jiffies的内部表示

jiffies定义于文件中:

/*

* The 64-bit value is not atomic - you MUST NOT read it

* without sampling the sequence number in xtime_lock.

* get_jiffies_64() will do this for you as appropriate.

*/

extern u64 __jiffy_data jiffies_64;

extern unsigned long volatile __jiffy_data jiffies;

ld(1)脚本用于连接主内核映像(在x86上位于arch/i386/kernel/.S中),

然后用jiffies_64变量的初值覆盖jiffies变量。因此jiffies取整个jiffies_64变量的低32

位。

访问jiffies的代码只会读取jiffies_64的低32位,通过get_jiffies_64()函数就可以读

取整个64位的值。在64位体系结构上,jiffies_64和jiffies指的是同一个变量。

#if (BITS_PER_LONG 《 64)

u64 get_jiffies_64(void);

#else

static inline u64 get_jiffies_64(void)

{