On Tuesday 13 June 2006 07:08, Keith Owens wrote:
Andi Kleen (on Tue, 13 Jun 2006 06:56:45 +0200) wrote:
I have previously suggested a lightweight solution that pins a process
to a cpu
That is preempt_disable()/preempt_enable() effectively
It's also light weight as much as these things can be.
The difference being that preempt_disable() does not allow the code to
sleep. There are some places where we want to use cpu local data and the code can tolerate preemption and even sleeping, as long as the
process schedules back on the same cpu.
Seems like a pretty obscure case to optimize for.
Anyways if you want to do that you can always do
disable_preempt(); set thread affinity mask to current cpu
enable_preempt(); do weird stuff and sleep ... ;
restore affinity mask
Can any of these people proposing "solutions" in this thread
demonstrate this stuff is actually performance critical?