summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2003-03-03 04:11:40 +0000
committerjeff <jeff@FreeBSD.org>2003-03-03 04:11:40 +0000
commitf0f35853d03f434ca1f8a49c3ca4b0fbf8aac94a (patch)
treea88a1f60a299da770464165a4fd3953ea22c7e0d /sys
parentba9b8f5cfc005f6ee31fc335e9b1916a6e52a8e4 (diff)
downloadFreeBSD-src-f0f35853d03f434ca1f8a49c3ca4b0fbf8aac94a.zip
FreeBSD-src-f0f35853d03f434ca1f8a49c3ca4b0fbf8aac94a.tar.gz
- Refrain from setting the td_priority in sched_wakeup(). It will be reset
before we return to user space.
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/sched_ule.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c
index 6861aad..8e3af08 100644
--- a/sys/kern/sched_ule.c
+++ b/sys/kern/sched_ule.c
@@ -560,21 +560,20 @@ sched_sleep(struct thread *td, u_char prio)
void
sched_wakeup(struct thread *td)
{
- struct ksegrp *kg;
-
mtx_assert(&sched_lock, MA_OWNED);
/*
* Let the kseg know how long we slept for. This is because process
* interactivity behavior is modeled in the kseg.
*/
- kg = td->td_ksegrp;
-
if (td->td_slptime) {
+ struct ksegrp *kg;
+
+ kg = td->td_ksegrp;
kg->kg_slptime += (ticks - td->td_slptime) * 1024;
- td->td_priority = sched_priority(kg);
+ sched_priority(kg);
+ td->td_slptime = 0;
}
- td->td_slptime = 0;
#ifdef SMP
if (td->td_priority < PZERO && td->td_schedflag & TD_SCHED_BLOAD) {
kseq_wakeup(KSEQ_CPU(td->td_kse->ke_cpu), td->td_kse);
OpenPOWER on IntegriCloud