Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

In the Linux Kernel CONFIG_NO_HZ is not set. But an initial reading suggests that setting that option would be nice from a performance point of view. But reading some posts like this made me think again.

Why CONFIG_NO_HZ is not set by default or why no performance improvement when it is enabled?

share|improve this question

2 Answers 2

up vote 3 down vote accepted

The performance improvement is not visible to everyone, just certain users for which RT kernels really matter : DSP, audio/video processing, and so on. So that config option is not universally beneficial, hence disabled.

share|improve this answer

Ticks are interrupts generated by a hardware timer and occur at a regular interval determined by the CONFIG_HZ kernel configuration, which for most architectures can be configured when compiling the kernel. The tick interrupt is a per-CPU interrupt. Starting from Linux 2.6.21, the idle dynamic ticks feature can be configured by using the CONFIG_NO_HZ kernel configuration option. The goal was to eliminate tick interrupts while in idle, to be able to go into deeper sleep modes. This is important for laptops but can also cut down power bills for server rooms. Linux 3.10.0 introduced the full dynamic ticks feature to eliminate tick interrupts when running a single task on a CPU. The goal here was to better support high performance computing and real-time use cases by making sure that the thread would be run undisturbed. The earlier configuration CONFIG_NO_HZ was renamed to CONFIG_NO_HZ_IDLE, and the new feature got the new configuration option CONFIG_NO_HZ_FULL.

The answer to your question is that CONFIG_NO_HZ(_IDLE) increases the cost of moving into and out of the idle state, slightly increasing the time it takes to get an idle CPU back to work. That cost may be considered excessive in highly latency-sensitive environments. For everybody else, disabling the timer tick for idle CPUs is almost certainly the right thing to do; for battery-powered systems that is doubly true.

Check this: http://lwn.net/Articles/549580/

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.