CVSROOT: /cvs
Module name: src
Changes by: [email protected] 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)