Messages in this thread | | | Date | Tue, 13 Jun 2006 15:43:12 +1000 | From | Nick Piggin <> | Subject | Re: 2.6.16-rc6-mm2 |
| |
Andi Kleen wrote: > 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?
You can't do this in general, because CPU hotplug will reset the affinity mask if the CPU is unplugged. I'd just say: don't do that.
However you can get some similar functionality by putting stuff in task_struct.
-- SUSE Labs, Novell Inc. Send instant messages to your online friends http://au.messenger.yahoo.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |