On 06/24/2014 01:01 PM, Viresh Kumar wrote:
HI Guys,
I have been working on CPU Isolation work since sometime now. The target here is to isolate a Core (for High performance Networking: data plane thread) from all kernel activities. A single data plane thread must run on isolated CPU indefinitely.
So, we need isolation from tasks, timers, ticks, workqueues, etc. Anything I missed in this list?
I am doing this with help of CPUSets/NO_HZ_FULL, etc currently.
One of the problem which isn't solved very well until now is: "How can we guarantee that CPU is isolated" ?
No traces for the cpu during a long period of time (except for entering idle) ?
Currently, my script is relying on the fact that on most of the interruptions per-cpu tick gets updated and checking its value must be enough from /proc/interrupts for clkevt device.
Is that enough? Or there are cases when there might be some interruption and ticks don't get updated?
The problem with the /proc/interrupts solution is that it changes with clkevt-driver. Some platforms might have strings as "arch_timer" or "twd" or something else.
Is there some robust way which would work on any platform? ARM/X86/etc ..
Yes, ftrace should give you this information by giving no traces.