LWN: Comments on "(Nearly) full tickless operation in 3.10" https://lwn.net/Articles/549580/ This is a special feed containing comments posted to the individual LWN article titled "(Nearly) full tickless operation in 3.10". en-us Sat, 04 Oct 2025 20:32:26 +0000 Sat, 04 Oct 2025 20:32:26 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net kernel thread/process and full tickless mode? https://lwn.net/Articles/767908/ https://lwn.net/Articles/767908/ henryc <div class="FormattedComment"> The article states, "the administrator should make extensive use of CPU affinities to keep unwanted processes (including kernel threads) off the relevant processors".<br> <p> I thought it wasn't possible to affine migration and kworker processes to other cores as they are per-core processes that bind to the specific cores. RCU related processes can be moved as there is a kernel parameter for that.<br> <p> The article suggests that in order for a core to be in full nohz mode, "a running CPU will only disable the timer tick if there is a single runnable process on that CPU". It sounds like it is necessary to move kernel processes such as migration and kworker out of the core. Or kernel processes don't count? I am a bit confused.<br> <p> If kernel processes count, then how to move them to other cores? Can they be moved to another physical CPU?<br> <p> Thanks.<br> </div> Tue, 09 Oct 2018 01:44:29 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/561913/ https://lwn.net/Articles/561913/ YAK <div class="FormattedComment"> In file kernel/time/Kconfig, option "NO_HZ_FULL" depends on 64BIT, So is it only supported for 64 bit architecture ? i wanted to try it out on 32-bit ARM cortex A9 but i guess its not possible ? <br> </div> Fri, 02 Aug 2013 06:37:52 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/559143/ https://lwn.net/Articles/559143/ hummassa <div class="FormattedComment"> Your link says "maintenance mode".<br> </div> Wed, 17 Jul 2013 02:56:56 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/559119/ https://lwn.net/Articles/559119/ ParadoxUncreated <div class="FormattedComment"> It´s way more than 1% more cpu. Atleast in terms of visual performance. I did a low-jitter config on linux some time ago, that I have now perfected: <br> <p> <a rel="nofollow" href="http://ovekarlsen.com/Blog/turning-ubuntu-12-04-into-a-professional-low-jitter-os/">http://ovekarlsen.com/Blog/turning-ubuntu-12-04-into-a-pr...</a><br> <p> Choosing components for less jitter, reducing timer interrupts to 90hz, enabling low-latency behaviour etc, + renicing X etc, made doom 3 run perfectly on a core 2 duo, with a GTX 280. On Quakecon 2012 Carmack says that game is still taxing on some configurations. It actually requires an Intel E5 workstation with low jitter hardware, to run as good in a tweaked windows XP.<br> <p> The game does 3 passes to OpenGL pr frame. That seems to make it very jitter-sensitive. But with a low-jitter configured kernel, it runs perfectly. That seems to apply to things like Wine also. Also Wine-games such as Half-life 2 still had some jitter, but much less.<br> <p> So low-jitter matters, if you want smooth gameplay on advanced game-engines. And a lot of data is pushed there. Generally the system seems very nice and responsive also. Much more like an optimal desktop system indeed.<br> <p> Peace Be With You.<br> </div> Tue, 16 Jul 2013 21:31:36 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/557036/ https://lwn.net/Articles/557036/ methanol <div class="FormattedComment"> Is there a way to show what the current "tick-mode" is? And can I force only one process to be on a particular cpu core?<br> <p> </div> Mon, 01 Jul 2013 12:28:38 +0000 Does Tickless supports for Octeon-2 and ARM as well ? https://lwn.net/Articles/552119/ https://lwn.net/Articles/552119/ Ralf <div class="FormattedComment"> MIPS support (tested on a 12 core Octeon+) is now available in <a rel="nofollow" href="http://git.linux-mips.org/?p=ralf/linux.git;a=commit;h=07f010e0f3b4e5afa54233190f7bbf91be403dfb">http://git.linux-mips.org/?p=ralf/linux.git;a=commit;h=07...</a><br> <p> Please send test reports to linux-mips@linux-mips.org. Thanks!<br> </div> Wed, 29 May 2013 09:46:36 +0000 Does Tickless supports for Octeon-2 and ARM as well ? https://lwn.net/Articles/551978/ https://lwn.net/Articles/551978/ Ralf <div class="FormattedComment"> Octeon 2 support CONFIG_NO_HZ_IDLE but not yet CONFIG_NO_HZ_FULL. Working on that.<br> </div> Tue, 28 May 2013 08:29:03 +0000 Does Tickless supports for Octeon-2 and ARM as well ? https://lwn.net/Articles/551740/ https://lwn.net/Articles/551740/ ajaycavium <div class="FormattedComment"> Can anybody please tell this feature is supported for Octeon-2 and ARM as well or it is for x86 only.<br> </div> Fri, 24 May 2013 07:56:51 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/551348/ https://lwn.net/Articles/551348/ chenlb206 <div class="FormattedComment"> Thank open source guys. You are great~<br> </div> Wed, 22 May 2013 07:45:35 +0000 ticks vs. polling https://lwn.net/Articles/551245/ https://lwn.net/Articles/551245/ cladisch <p> <font class="QuotedText">&gt; ticks to look some day as outdated as polling?</font><br> <p> Polling is regularly checking the status, just because something that needs handling <em>might</em> have happened. <p> Ticks <em>are</em> polling. Tue, 21 May 2013 07:49:08 +0000 Hyperthreading https://lwn.net/Articles/551238/ https://lwn.net/Articles/551238/ marcH <div class="FormattedComment"> So, ticks to look some day as outdated as polling?<br> <p> </div> Mon, 20 May 2013 23:13:11 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/550526/ https://lwn.net/Articles/550526/ Tobu Part of the work will be to adjust the various accumulators, statistics, governors and feedback mechanisms to work when the timeslice they measure isn't constant any more. Tue, 14 May 2013 12:18:52 +0000 Hyperthreading https://lwn.net/Articles/550480/ https://lwn.net/Articles/550480/ chloe_zen <div class="FormattedComment"> I think you haven't been keeping up with current events (no pun intended); event-driven loops in a single OS thread are the New Way of getting the most I/O through a CPU. This is a realistically useful optimization.<br> </div> Mon, 13 May 2013 21:46:04 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/550397/ https://lwn.net/Articles/550397/ dps <div class="FormattedComment"> I believe that real tickless operation with pre-emptition is possible. Instead of recalculating that the same process keeps the CPU every n microseconds, until it does not, one could compute when another process would win the CPU and only schedule an interrupt and that time. Any periods in which the process would keep the CPU does not need interruption.<br> <p> I know actually implementing this would not be trivial and I am not volunteering to do this myself.<br> </div> Mon, 13 May 2013 11:57:25 +0000 Hyperthreading https://lwn.net/Articles/550082/ https://lwn.net/Articles/550082/ PaulMcKenney <div class="FormattedComment"> Cute, but inaccurate. ;-)<br> <p> If there is only one CPU-bound task runnable on a given CPU, there is no point in any scheduling decisions.<br> <p> If there are multiple tasks runnable on a given CPU, and if the currently running task is CPU-bound, then there is no point in any scheduling decisions until the next timeslice.<br> <p> Of course, things might change in the meantime, but in that case, this CPU will receive an interrupt and can therefore adjust as appropriate at that point in time.<br> </div> Fri, 10 May 2013 18:59:28 +0000 Hyperthreading https://lwn.net/Articles/549978/ https://lwn.net/Articles/549978/ akeane <div class="FormattedComment"> The config option should be called: CONFIG_WINDOWS_311<br> <p> Really, "cooperative" multi-tasking?<br> <p> Really?<br> <p> Really...<br> </div> Fri, 10 May 2013 08:43:33 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549895/ https://lwn.net/Articles/549895/ bagder <div class="FormattedComment"> There's also code for (32bit) ARM as well that works. I'm not sure exactly in which tree/state it is though.<br> </div> Thu, 09 May 2013 20:58:33 +0000 Hyperthreading https://lwn.net/Articles/549863/ https://lwn.net/Articles/549863/ drago01 <div class="FormattedComment"> I doubt this will get you any noticeable power savings if at all. The most interesting part for power saving is the idle part which is already handled by CONFIG_NO_HZ<br> </div> Thu, 09 May 2013 15:59:33 +0000 Hyperthreading https://lwn.net/Articles/549814/ https://lwn.net/Articles/549814/ sheepdestroyer <div class="FormattedComment"> Also interested by that particular issue. Got a SandyBridge ultra-portable so 2 "real" cores + 2 HT and would like to know how much if any power save should i expect?<br> </div> Thu, 09 May 2013 13:14:21 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549754/ https://lwn.net/Articles/549754/ nevets <div class="FormattedComment"> It's confusing because there's two things at play here. There's the hrtick and the scheduler_tick.<br> <p> The hrtick is used to denote exact time slices for the CFS scheduler to create more fairness. It really doesn't do much more than that. But this does not replace the scheduler_tick, which does among other things, keeps track of the SCHED_RR time slices, manages load balancing, and updates task timings.<br> <p> But I'm sure in the future the hrtick may be used more to get rid of the periodic tick.<br> </div> Thu, 09 May 2013 02:16:40 +0000 Hyperthreading https://lwn.net/Articles/549750/ https://lwn.net/Articles/549750/ bgmarete <div class="FormattedComment"> Thanks for the reply Corbet. I have just finished reading a long series of articles, including some at Intel, which make your point clear.<br> <p> I would still like to know if each hyperthread can be independently put into full tickless mode (independent, that is, from its sibling), with the attendant power savings (if any). (Assume that I am interested only in saving battery power).<br> <p> </div> Thu, 09 May 2013 01:15:55 +0000 One-second tick https://lwn.net/Articles/549745/ https://lwn.net/Articles/549745/ simlo <div class="FormattedComment"> Hmm, wouldn't it be more appropiate just to make sure the timer is set at a maximum of 1 second in the future after last time the scheduler ran instead of being run every second?<br> </div> Thu, 09 May 2013 00:18:07 +0000 Hyperthreading https://lwn.net/Articles/549736/ https://lwn.net/Articles/549736/ corbet If you want tickless for latency reasons, the last thing you're going to do is turn on hyperthreading. Wed, 08 May 2013 23:05:32 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549735/ https://lwn.net/Articles/549735/ bgmarete <div class="FormattedComment"> With regard to the necessity of setting CPU affinities so that processors marked for tickless operation do not acquire more than one process, wouldn't something like systemd ease the related administrative work? After all, I don't want to be messing around with taskset(1) on my laptop.<br> <p> Also, how does this relate to CPU hyperthreads? Can a hyperthread be in tickless mode while a sibling hyperthread is not? Or must the entire core be woken up (or not) by the timer ticks?<br> <p> </div> Wed, 08 May 2013 22:56:21 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549707/ https://lwn.net/Articles/549707/ intgr <div class="FormattedComment"> Sorry, it's much more likely that I am missing something.<br> <p> AFAICT the scheduler doesn't switch tasks at every timer tick, even when there is contention for a CPU -- it has its own concept of timeslice length that changes with load. So why does a contended CPU need to run the timer tick if it's not going to switch tasks?<br> <p> And grandparent wrote something that seemed to match that line of thinking:<br> <p> <font class="QuotedText">&gt; After a little RTFC, I found that a HR-timer was used to calculate the next preemption point. I.e. instead of preempting on 100 Hz clock, it preempts exactly when the timeslot of the current process ends.</font><br> <p> </div> Wed, 08 May 2013 20:23:50 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549705/ https://lwn.net/Articles/549705/ corbet Confused. If two processes are running, the period tick will run just like it does now. What am I missing? What is misleading? Wed, 08 May 2013 19:52:13 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549702/ https://lwn.net/Articles/549702/ intgr <div class="FormattedComment"> I got the same impression as you. I think the wording in the article is unfortunate.<br> <p> <font class="QuotedText">&gt; Even then, a running CPU will only disable the timer tick if there is a single runnable process on that CPU. As soon as a second process appears, the tick is needed so that the scheduler can make the necessary time-slice decisions</font><br> <p> It's misleading to call it "the tick" if it's not fixed to the HZ any more, seems more like a preemption timer.<br> <p> </div> Wed, 08 May 2013 19:48:29 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549699/ https://lwn.net/Articles/549699/ blitzkrieg3 <div class="FormattedComment"> Okay, this makes absolutely perfect sense, but because of the way operating systems have been designed for the past 40 years, that solution completely eluded me.<br> </div> Wed, 08 May 2013 18:50:28 +0000 One-second tick https://lwn.net/Articles/549693/ https://lwn.net/Articles/549693/ corbet See <a rel="nofollow" href="http://git.kernel.org/linus/265f22a975c1e4cc3a4d1f94a3ec53ffbb6f5b9f">this commit</a>. One tick per second is still needed. Wed, 08 May 2013 18:29:12 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549687/ https://lwn.net/Articles/549687/ gby <div class="FormattedComment"> There is no inherent one second timer tick except on on a single CPU on the system. I think you got this wrong.<br> </div> Wed, 08 May 2013 18:02:23 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549672/ https://lwn.net/Articles/549672/ linuxjacques <div class="FormattedComment"> <p> The 64-bit only constraint makes me wonder how much this has been tested on non-x86 archs.<br> <p> I'm interested in it for 32-bit ppc.<br> <p> </div> Wed, 08 May 2013 16:30:25 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549667/ https://lwn.net/Articles/549667/ simlo <div class="FormattedComment"> After a little RTFC, I found that a HR-timer was used to calculate the next preemption point. I.e. instead of preempting on 100 Hz clock, it preempts exactly when the timeslot of the current process ends.<br> </div> Wed, 08 May 2013 16:24:34 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549664/ https://lwn.net/Articles/549664/ busterb <div class="FormattedComment"> On a related note, it seems like quite a few multi-core SoC vendors have implemented their own patches for this behavior as well, e.g. Tilera's 'zero overhead' Linux. Glad to see if it becomes mainstream, maybe they'll all adopt just one way to do it.<br> <p> <a href="http://www.6windblog.com/linux-based-fast-path/">http://www.6windblog.com/linux-based-fast-path/</a><br> </div> Wed, 08 May 2013 16:22:24 +0000 (Nearly) full tickless operation in 3.10 https://lwn.net/Articles/549659/ https://lwn.net/Articles/549659/ busterb <div class="FormattedComment"> So, what's the solution for running &gt;1 process per CPU with NO_HZ_FULL? Use syscalls as the hook for an implicit schedule 'pump'?<br> <p> Requiring the user to explicitly schedule with 'sched_yield' to produce a cooperative multitasking scenario might work well. I've worked on enough realtime systems to know that this can yield good performance if done correctly (since your performance-critical sections never get interrupted without you saying so), though it occasionally bites you if you forget to yield somewhere, e.g. waiting for a lock. I know I would have liked to have had something like this in past system designs Instead, 'yielding' was done with coroutines or tasklets/threads.<br> <p> What about having the boot cpu do all the scheduling for all the other CPUs? Basically treat the other CPUs like a thread pool and distribute processes. Is the cost of IPIs too much for this to be practical?<br> </div> Wed, 08 May 2013 16:12:46 +0000