summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_synch.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/kern_synch.c')
-rw-r--r--sys/kern/kern_synch.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c
index cd3ef44..342cb3a 100644
--- a/sys/kern/kern_synch.c
+++ b/sys/kern/kern_synch.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)kern_synch.c 8.9 (Berkeley) 5/19/95
- * $Id: kern_synch.c,v 1.54 1998/04/04 13:25:20 phk Exp $
+ * $Id: kern_synch.c,v 1.55 1998/05/17 11:52:45 phk Exp $
*/
#include "opt_ktrace.h"
@@ -57,6 +57,10 @@
#endif
#include <machine/cpu.h>
+#ifdef SMP
+#include <machine/smp.h>
+#endif
+#include <machine/ipl.h>
#include <machine/limits.h> /* for UCHAR_MAX = typeof(p_priority)_MAX */
static void rqinit __P((void *));
@@ -130,8 +134,13 @@ roundrobin(arg)
{
struct proc *p = curproc; /* XXX */
+#ifdef SMP
+ need_resched();
+ forward_roundrobin();
+#else
if (p == 0 || RTP_PRIO_NEED_RR(p->p_rtprio.type))
need_resched();
+#endif
timeout(roundrobin, NULL, ROUNDROBIN_INTERVAL);
}
OpenPOWER on IntegriCloud