Annotation of researchv9/sys/h/share.h, revision 1.1

1.1     ! root        1: /*
        !             2: **     Share scheduling parameters
        !             3: */
        !             4: 
        !             5: struct sh_consts
        !             6: {
        !             7:        /** Parameters **/
        !             8: 
        !             9:        u_short sc_fl;          /* Scheduling flags */
        !            10:        u_short sc_delta;       /* Run rate for scheduler in secs. */
        !            11:        u_short sc_maxusers;    /* Max. number of active users */
        !            12:        u_short sc_maxgroups;   /* Max. group nesting */
        !            13:        u_long  sc_sparep0;     /* <spare> */
        !            14:        float   sc_maxpri;      /* Max. absolute priority */
        !            15:        float   sc_maxupri;     /* Max. priority for a normal process */
        !            16:        float   sc_maxusage;    /* Max. usage considered */
        !            17:        float   sc_decay;       /* Decay factor for ``l_usage'' */
        !            18:        u_long  sc_pridecbase;  /* Base for decay for ``p_sharepri'' */
        !            19:        u_long  sc_syscall;     /* Cost of system call */
        !            20:        u_long  sc_bio;         /*   "  "  logical block i/o */
        !            21:        u_long  sc_tio;         /*   "  "  stream i/o */
        !            22:        u_long  sc_tick;        /*   "  "  cpu tick */
        !            23:        u_long  sc_click;       /*   "  "  memory tick */
        !            24:        float   sc_pridecay;    /* Decay rate for maximally niced processes */
        !            25:        float   sc_maxushare;   /* Factor for max effective user share */
        !            26:        float   sc_mingshare;   /* Factor for min effective group share */
        !            27:        u_long  sc_sparep[1];   /* <spare> */
        !            28: 
        !            29:        /** Feedback **/
        !            30: 
        !            31:        float   sc_totusage;    /* E{1/kl.l_usage} */
        !            32:        float   sc_sparef0;     /* <spare> */
        !            33:        u_short sc_users;       /* Number of active users */
        !            34:        u_short sc_groups;      /* Number of active groups */
        !            35:        float   sc_highshpri;   /* High value of p_sharepri */
        !            36:        float   sc_maxcusage;   /* Max. current usage */
        !            37:        u_long  sc_syscallc;    /* Total counts of system calls */
        !            38:        u_long  sc_bioc;        /*   "     "    "  logical block i/o */
        !            39:        u_long  sc_tioc;        /*   "     "    "  stream i/o */
        !            40:        u_long  sc_tickc;       /*   "     "    "  cpu ticks */
        !            41:        u_long  sc_clickc;      /*   "     "    "  memory ticks */
        !            42:        u_long  sc_sparef[4];   /* <spare> */
        !            43: };
        !            44: 
        !            45: extern struct sh_consts        shconsts;
        !            46: 
        !            47: #define        DecayUsage      shconsts.sc_decay
        !            48: #define        Delta           shconsts.sc_delta
        !            49: #define        Groups          shconsts.sc_groups
        !            50: #define        LASTPARAM       shconsts.sc_sparep[0]
        !            51: #define        MAXGROUPS       shconsts.sc_maxgroups
        !            52: #define        MAXPRI          shconsts.sc_maxpri
        !            53: #define        MaxSharePri     shconsts.sc_highshpri
        !            54: #define        MAXUPRI         shconsts.sc_maxupri
        !            55: #define        MaxUsage        shconsts.sc_maxcusage
        !            56: #define        MAXUSAGE        shconsts.sc_maxusage
        !            57: #define        MAXUSERS        shconsts.sc_maxusers
        !            58: #define        MAXUSHARE       shconsts.sc_maxushare
        !            59: #define        MINGSHARE       shconsts.sc_mingshare
        !            60: #define        PriDecay        shconsts.sc_pridecay
        !            61: #define        PriDecayBase    shconsts.sc_pridecbase
        !            62: #define        Shareflags      shconsts.sc_fl
        !            63: #define        TotUsage        shconsts.sc_totusage
        !            64: #define        Users           shconsts.sc_users
        !            65: 
        !            66: /*
        !            67: **     Share scheduling flags
        !            68: */
        !            69: 
        !            70: #define        NOSHARE         01      /* Don't run scheduler at all */
        !            71: #define        ADJGROUPS       02      /* Adjust group usages */
        !            72: #define        LIMSHARE        04      /* Limit maximum share */
        !            73: 
        !            74: #ifdef KERNEL
        !            75: /*
        !            76: **     Request software interrupt to run scheduler
        !            77: */
        !            78: 
        !            79: #ifdef vax
        !            80: #define        setshsched()    mtpr(SIRR, 0x1)
        !            81: #define        splshsched()    splx(0x1)
        !            82: #endif
        !            83: #ifdef sun
        !            84: #define        setshsched()    softcall(share, (caddr_t)0);
        !            85: #define        splshsched()    spl1()
        !            86: #endif
        !            87: 
        !            88: /*
        !            89: **     Array of costs for a cpu tick biased by p_nice values.
        !            90: */
        !            91: 
        !            92: extern long            NiceTicks[];
        !            93: 
        !            94: /*
        !            95: **     Table for pre-calculated priority decays
        !            96: */
        !            97: 
        !            98: extern float           NiceDecays[];
        !            99: #endif KERNEL
        !           100: 
        !           101: #define        _SHARE_         1

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.