CVSROOT: /cvs Module name: src Changes by: a...@cvs.openbsd.org 2009/04/14 03:13:25
Modified files: sys/kern : kern_fork.c kern_sched.c kern_synch.c sched_bsd.c sys/sys : proc.h sched.h Log message: Some tweaks to the cpu affinity code. - Split up choosing of cpu between fork and "normal" cases. Fork is very different and should be treated as such. - Instead of implicitly choosing a cpu in setrunqueue, do it outside where it actually makes sense. - Just because a cpu is marked as idle doesn't mean it will be soon. There could be a thundering herd effect if we call wakeup from an interrupt handler, so subtract cpus with queued processes when deciding which cpu is actually idle. - some simplifications allowed by the above. kettenis@ ok (except one bugfix that was not in the intial diff)