John Baldwin 9dddab6fc1 Change the roundrobin implementation in the 4BSD scheduler to trigger a
userland preemption directly from hardclock() via sched_clock() when a
thread uses up a full quantum instead of using a periodic timeout to cause
a userland preemption every so often.  This fixes a potential deadlock
when IPI_PREEMPTION isn't enabled where softclock blocks on a lock held
by a thread pinned or bound to another CPU.  The current thread on that
CPU will never be preempted while softclock is blocked.

Note that ULE already drives its round-robin userland preemption from
sched_clock() as well and always enables IPI_PREEMPT.

MFC after:	1 week
2007-10-27 22:07:40 +00:00
..
2007-08-16 05:32:26 +00:00
2007-10-26 16:33:47 +00:00
2007-04-23 12:53:00 +00:00
2007-10-23 00:52:25 +00:00
2006-05-28 22:15:28 +00:00
2007-08-16 05:32:26 +00:00
2007-08-16 05:32:26 +00:00