Annotation of researchv9/sys/h/share.h, revision 1.1.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.