From 665cb285a80965022be91ffc31fce38845e3eacf Mon Sep 17 00:00:00 2001 From: Jeff Roberson Date: Sat, 21 Jun 2003 02:22:47 +0000 Subject: - Don't allow nice to have such a large effect on priority. This was causing poor interactive performance while unnice processes were running. The new scheme still allows nice to have an effect on priority but it is not as dramatic as the effect of the interactivity score. --- sys/kern/sched_ule.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'sys') diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 3932c6cd093d..9e01ef869bbe 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -124,23 +124,22 @@ struct p_sched *proc0_sched = NULL; struct td_sched *thread0_sched = &td_sched; /* - * This priority range has 20 priorities on either end that are reachable - * only through nice values. + * The priority is primarily determined by the interactivity score. Thus, we + * give lower(better) priorities to kse groups that use less CPU. The nice + * value is then directly added to this to allow nice to have some effect + * on latency. * * PRI_RANGE: Total priority range for timeshare threads. - * PRI_NRESV: Reserved priorities for nice. + * PRI_NRESV: Number of nice values. * PRI_BASE: The start of the dynamic range. - * DYN_RANGE: Number of priorities that are available int the dynamic - * priority range. */ #define SCHED_PRI_RANGE (PRI_MAX_TIMESHARE - PRI_MIN_TIMESHARE + 1) #define SCHED_PRI_NRESV PRIO_TOTAL #define SCHED_PRI_NHALF (PRIO_TOTAL / 2) #define SCHED_PRI_NTHRESH (SCHED_PRI_NHALF - 1) -#define SCHED_PRI_BASE ((SCHED_PRI_NRESV / 2) + PRI_MIN_TIMESHARE) -#define SCHED_DYN_RANGE (SCHED_PRI_RANGE - SCHED_PRI_NRESV) +#define SCHED_PRI_BASE (PRI_MIN_TIMESHARE) #define SCHED_PRI_INTERACT(score) \ - ((score) * SCHED_DYN_RANGE / SCHED_INTERACT_MAX) + ((score) * SCHED_PRI_RANGE / SCHED_INTERACT_MAX) /* * These determine the interactivity of a process. -- cgit v1.3