summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2007-01-06 02:34:23 +0000
committerjeff <jeff@FreeBSD.org>2007-01-06 02:34:23 +0000
commit80a97a8d5ec42255341c0d8a2241d3e40caac7d1 (patch)
tree2a1733ebfe9a17a0d7ed27d343a6c1eacc20c166
parent08aa1698e7efae1bba5d31f8bb9370cff95dd1d9 (diff)
downloadFreeBSD-src-80a97a8d5ec42255341c0d8a2241d3e40caac7d1.zip
FreeBSD-src-80a97a8d5ec42255341c0d8a2241d3e40caac7d1.tar.gz
- Don't IPI unless we're going to interrupt something exiting in the kernel.
otherwise we can afford the latency. This makes a significant performance improvement.
-rw-r--r--sys/kern/sched_ule.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c
index e117782..ac40680 100644
--- a/sys/kern/sched_ule.c
+++ b/sys/kern/sched_ule.c
@@ -692,7 +692,7 @@ tdq_notify(struct td_sched *ts, int cpu)
} while(!atomic_cmpset_ptr((volatile uintptr_t *)&tdq->tdq_assigned,
(uintptr_t)ts->ts_assign, (uintptr_t)ts));
/* Only ipi for realtime/ithd priorities */
- if (ts->ts_thread->td_priority >= PRI_MIN_TIMESHARE)
+ if (ts->ts_thread->td_priority > PRI_MIN_KERN)
return;
/*
* Without sched_lock we could lose a race where we set NEEDRESCHED
OpenPOWER on IntegriCloud