diff options
author | jeff <jeff@FreeBSD.org> | 2003-03-03 04:11:40 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2003-03-03 04:11:40 +0000 |
commit | f0f35853d03f434ca1f8a49c3ca4b0fbf8aac94a (patch) | |
tree | a88a1f60a299da770464165a4fd3953ea22c7e0d /sys/kern | |
parent | ba9b8f5cfc005f6ee31fc335e9b1916a6e52a8e4 (diff) | |
download | FreeBSD-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/kern')
-rw-r--r-- | sys/kern/sched_ule.c | 11 |
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); |