Timer related events are managed by the high-resolution
timers infrastructure (hrtimers) in the kernel and our approach
to create a tickless Linux leverages this system. hrtimers
manage a per-CPU based queue of timers ordered by the expiry
time and they arm their corresponding hardware timer
chips to interrupt the CPU only at the nearest event. The
scheduler, for example, initializes an hrtimer to call the main
scheduler tick function during the machine boot and forwards
that timer with HZ frequency at every tick. We made
a trivial modification to that function to forward the timer
much further in the future rather than with HZ frequency.
This change only triggers when the application requests a
tickless environment with a system call and it is the only
runnable process on its core at that moment. In that case,
the CPU switches to a no tick mode where further timer
and work item requests are queued to the corresponding
OS core, which is always calculated as the first CPU in the
application core’s NUMA domain. With this environment,
applications still received interrupts due to IPIs sent from
remote CPUs for the services that require global collaboration
from all CPUs. We identified one of these services
as the RCU subsystem and implemented necessary hooks to
prevent interruption of no tick CPUs. After these modifications,
application cores did not interrupt tasks running on
them until those tasks exit or explicitly turned off the no
tick mode. As shown in the Figure 2f, further benchmarks
proved that the cores were noiseless with flat FWQ plots.