summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2003-06-28 06:19:56 +0000
committerjeff <jeff@FreeBSD.org>2003-06-28 06:19:56 +0000
commit33aaa6f29971c1e8fece802106d5283faaabf99d (patch)
tree1dc360f3842796fe890802ade36eb9cf8c45daf9 /sys/kern
parent49ea78ffbb9d8bf96c0cbe204d94b9a0b36b956c (diff)
downloadFreeBSD-src-33aaa6f29971c1e8fece802106d5283faaabf99d.zip
FreeBSD-src-33aaa6f29971c1e8fece802106d5283faaabf99d.tar.gz
- Throttle the inherited sleep and run time in sched_fork_kseg(). This
allows us to learn the behavior of a thread much more quickly after it starts up.
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/sched_ule.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c
index 9d63982..622ed15 100644
--- a/sys/kern/sched_ule.c
+++ b/sys/kern/sched_ule.c
@@ -146,12 +146,12 @@ struct td_sched *thread0_sched = &td_sched;
*
* SLP_RUN_MAX: Maximum amount of sleep time + run time we'll accumulate
* before throttling back.
- * SLP_RUN_THROTTLE: Divisor for reducing slp/run time.
+ * SLP_RUN_THROTTLE: Divisor for reducing slp/run time at fork time.
* INTERACT_MAX: Maximum interactivity value. Smaller is better.
* INTERACT_THRESH: Threshhold for placement on the current runq.
*/
#define SCHED_SLP_RUN_MAX ((hz * 2) << 10)
-#define SCHED_SLP_RUN_THROTTLE (2)
+#define SCHED_SLP_RUN_THROTTLE (100)
#define SCHED_INTERACT_MAX (100)
#define SCHED_INTERACT_HALF (SCHED_INTERACT_MAX / 2)
#define SCHED_INTERACT_THRESH (20)
@@ -891,8 +891,8 @@ sched_fork_ksegrp(struct ksegrp *kg, struct ksegrp *child)
PROC_LOCK_ASSERT(child->kg_proc, MA_OWNED);
/* XXX Need something better here */
- child->kg_slptime = kg->kg_slptime;
- child->kg_runtime = kg->kg_runtime;
+ child->kg_slptime = kg->kg_slptime / SCHED_SLP_RUN_THROTTLE;
+ child->kg_runtime = kg->kg_runtime / SCHED_SLP_RUN_THROTTLE;
kg->kg_runtime += tickincr << 10;
sched_interact_update(kg);
OpenPOWER on IntegriCloud