Skip site navigation (1)Skip section navigation (2)
Date:      09 Mar 2004 17:35:13 +0000
From:      Bin Ren <br260@cam.ac.uk>
To:        freebsd-hackers@freebsd.org
Subject:   ULE interactivity update
Message-ID:  <E1B0l8L-0004IO-9V.--077bfdda5c08a3dc1da12f192cb9c38ad6165f2b@maroon.csi.cam.ac.uk>

next in thread | raw e-mail | index | archive | help
Hi,

in 'sys/kern/sched_ule.c', there is:

static void
sched_interact_update(struct ksegrp *kg)
{
        int sum;
                                                                                                                                                                                    
        sum = kg->kg_runtime + kg->kg_slptime;
        if (sum < SCHED_SLP_RUN_MAX)
                return;
        /*
         * If we have exceeded by more than 1/5th then the algorithm below
         * will not bring us back into range.  Dividing by two here forces
         * us into the range of [3/5 * SCHED_INTERACT_MAX, 
SCHED_INTERACT_MAX]
         */
        if (sum > (SCHED_INTERACT_MAX / 5) * 6) {
                kg->kg_runtime /= 2;
                kg->kg_slptime /= 2;
                return;
        }
        kg->kg_runtime = (kg->kg_runtime / 5) * 4;
        kg->kg_slptime = (kg->kg_slptime / 5) * 4;
}


Why here is 'SCHED_INTERACT_MAX' suddenly used instead of SCHED_SLP_RUN_MAX?
There is a huge difference between them, both in values and in meanings.

Thanks,
Bin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1B0l8L-0004IO-9V.--077bfdda5c08a3dc1da12f192cb9c38ad6165f2b>