Tickless

A colleague draw a good analogy to explain the advantages of a tickless kernel: Imagine you have to wake up at 6 o’clock to get your flight to somwhere in the middle of nowhere. There are two ways to wake up on time. You can use a egg-timer, wake up every ten minutes and check if it’s already 6 o’clock. Or you can use an alarm clock that wakes you up at 6 o’clock. You can imagine that the first way doesn’t give you any comfortable night sleep. With an alarm clock you can sleep until the alarm clock violently ends your sleep at 6 o’clock. Interestingly operating systems worked with an egg-timer for a long time: The operating system wakes in certain short intervals, check if there is something to do and gets back to sleep. So your system works, even when there is nothing to do. This has certain disadvantages. Power management can’t be that effective as it could be, as the system wakes up every few microseconds and virtualization has to live with a certain basic load for every guest just due to this wake up even when there is nothing to do. Having a tickless kernel reduces this basic load and thus makes the system more virtualization-friendly and more power efficient. Solaris is on the way to a tickless kernel. With the integration of “PSARC 2009/396 Tickless Kernel Architecture / lbolt decoupling” the second step toward having a tickless kernel found it’s way into Solaris (The first step was the integration of the CR 65644503)