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)

Reply via email to