On Wed, Jan 15, 2014 at 02:57:36PM +0530, Viresh Kumar wrote:
Hi Again,
I am now successful in isolating a CPU completely using CPUsets, NO_HZ_FULL and CPU hotplug..
My setup and requirements for those who weren't following the earlier mails:
For networking machines it is required to run data plane threads on some CPUs (i.e. one thread per CPU) and these CPUs shouldn't be interrupted by kernel at all.
Earlier I tried CPUSets with NO_HZ by creating two groups with load_balancing disabled between them and manually tried to move all tasks out to CPU0 group. But even then there were interruptions which were continuously coming on CPU1 (which I am trying to isolate). These were some workqueue events, some timers (like prandom), timer overflow events (As NO_HZ_FULL pushes hrtimer to long ahead in future, 450 seconds, rather than disabling them completely, and these hardware timers were overflowing their counters after 90 seconds on Samsung Exynos board).
Are you sure about that? NO_HZ_FULL shouldn't touch much hrtimers. Those are independant from the tick.
Although some of them seem to rely on the softirq, but that seem to concern the tick hrtimer only.