diff options
| author | Jeff Roberson <jeff@FreeBSD.org> | 2003-10-12 21:07:31 +0000 |
|---|---|---|
| committer | Jeff Roberson <jeff@FreeBSD.org> | 2003-10-12 21:07:31 +0000 |
| commit | 736c97c7b327694df8a8d0519e0cdbadab7f3a09 (patch) | |
| tree | 3710dfd553ed30f9150326fb4748781ada5358a7 | |
| parent | 8f21478b6abf87c55b5393195cc981047ee94e99 (diff) | |
Notes
| -rw-r--r-- | sys/kern/sched_ule.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 9fbfb0cebcbaf..635a0ddf2de62 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -182,7 +182,9 @@ struct td_sched *thread0_sched = &td_sched; #define SCHED_INTERACTIVE(kg) \ (sched_interact_score(kg) < SCHED_INTERACT_THRESH) #define SCHED_CURR(kg, ke) \ - (ke->ke_thread->td_priority < PRI_MIN_TIMESHARE || SCHED_INTERACTIVE(kg)) + (ke->ke_thread->td_priority < PRI_MIN_TIMESHARE || \ + SCHED_INTERACTIVE(kg) || \ + mtx_ownedby(&Giant, (ke)->ke_thread)) /* * Cpu percentage computation macros and defines. @@ -925,13 +927,10 @@ sched_fork_kse(struct kse *ke, struct kse *child) child->ke_cpu = ke->ke_cpu; /* sched_pickcpu(); */ child->ke_runq = NULL; - /* - * Claim that we've been running for one second for statistical - * purposes. - */ - child->ke_ticks = 0; - child->ke_ltick = ticks; - child->ke_ftick = ticks - hz; + /* Grab our parents cpu estimation information. */ + child->ke_ticks = ke->ke_ticks; + child->ke_ltick = ke->ke_ltick; + child->ke_ftick = ke->ke_ftick; } void |
