Linux timekeeping data structures, macros, and helper routines
We will now broaden our awareness by looking at some key timekeeping structures, macros, and helper routines that can assist programmers in extracting specific time-related data.
Jiffies
Thejiffies
variable holds the number of ticks elapsed since system bootup. Every time a tick occurs, jiffies is incremented by one. It's a 32-bit variable, meaning for a tick rate of 100 Hz, overflow will occur in approximately 497 days (and in 49 days, 17 hours for a 1000 Hz tick rate).
To overcome this issue, a 64-bit variable jiffies_64
is used instead, which allows for thousands of millions of years before the overflow occurs. The jiffies
variable is equated to the 32 least significant bits of jiffies_64
. The reason for having both jiffies
and jiffies_64
variables is that in 32-bit machines, a 64-bit variable can not be accessed atomically; some synchronization is required in order to avoid any counter update while these two 32-bit halves are...