Here is a complete respin of the dynamic ticks code for i386. I thank Srivatsa Vaddagiri for attempting to unify the dyntick interfaces, and Russell King for suggestions on unifying it based on the arm code. Other dynticks versions have appeared sporadically for x86_64 and ppc64 without reference to the unified base. As the i386 code still has the beginnings of a unified dynticks, I have updated the i386 dynticks with this in mind, and hopefully unity can still be achieved in the future. I've changed the portion of the arch independent code to resemble the arm base more closely with struct members of dyn_tick_timer, and extra members that may be helpful in other arches. I've performed numerous cleanups and optimisations. The timer reprogramming accuracy was improved. The sys/ interface was made to resemble the arm one with a simple entry for on and off in /sys/devices/system/timer/timer0/dyn_tick as the other entries were redundant and it makes sense to be consistent. i386 NO_IDLE_HZ now selects the pm_timer rather than is dependent on it since it is the only timer which can maintain accuracy with dynticks enabled. So far this version seems to boot and run fine, but there are at least 2 places in the kernel that need to be made aware of the fact they're running dynticks; the ondemand scaling governor and the bus mastering code (as pointed out by Tytso). Both don't realise the few ticks that have passed are quite some distance apart and overestimate the load grossly. They are not harmful, but lead to increase in power usage instead of a decrease. I have yet to investigate that code portion to see what needs to be done The current patch is a series of 3 patches and a rollup and the split-out patches are all available here: http://ck.kolivas.org/patches/dyn-ticks/ Attached is a rollup of the 3 patches for 2.6.15-rc1 to provide dynticks for i386 Please test and report, and feel free to provide code hints for ondemand and bus mastering :D Cheers, Con