Lines Matching refs:fssproc

293 #define	FSS_LIST_INSERT(fssproc)				\
295 int index = FSS_LIST_HASH(fssproc->fss_tp); \
299 fssproc->fss_next = headp->fss_next; \
300 fssproc->fss_prev = headp; \
301 headp->fss_next->fss_prev = fssproc; \
302 headp->fss_next = fssproc; \
306 #define FSS_LIST_DELETE(fssproc) \
308 int index = FSS_LIST_HASH(fssproc->fss_tp); \
311 fssproc->fss_prev->fss_next = fssproc->fss_next; \
312 fssproc->fss_next->fss_prev = fssproc->fss_prev; \
789 fssproc_t *fssproc;
795 fssproc = FSSPROC(t);
796 fssproj = FSSPROC2FSSPROJ(fssproc);
808 ASSERT(fssproc->fss_runnable == 1);
809 fssproc->fss_runnable = 0;
816 fssproc_t *fssproc;
822 fssproc = FSSPROC(t);
823 fssproj = FSSPROC2FSSPROJ(fssproc);
834 ASSERT(fssproc->fss_runnable == 0);
835 fssproc->fss_runnable = 1;
859 * Initialize the fssproc hash table.
929 fss_newpri(fssproc_t *fssproc, boolean_t quanta_up)
940 tp = fssproc->fss_tp;
948 fssproj = FSSPROC2FSSPROJ(fssproc);
959 ticks = fssproc->fss_ticks;
960 fssproc->fss_ticks = 0;
966 fssproc->fss_umdpri = fss_minglobpri;
983 fsspri = fssproc->fss_fsspri;
987 fssproc->fss_fsspri = fsspri;
1022 fssproc->fss_umdpri = 1;
1026 fssproc->fss_umdpri = fss_maxumdpri - invpri;
1249 fss_change_priority(kthread_t *t, fssproc_t *fssproc)
1254 new_pri = fssproc->fss_umdpri;
1257 t->t_cpri = fssproc->fss_upri;
1258 fssproc->fss_flags &= ~FSSRESTORE;
1268 fssproc->fss_flags |= FSSBACKQ;
1271 fssproc->fss_timeleft = fss_quantum;
1284 fssproc->fss_timeleft = fss_quantum;
1286 fssproc->fss_flags |= FSSBACKQ;
1355 fssproc_t *fssproc;
1363 for (fssproc = fss_listhead[i].fss_next; fssproc != &fss_listhead[i];
1364 fssproc = fssproc->fss_next) {
1365 t = fssproc->fss_tp;
1376 if ((fssproc->fss_flags & FSSKPRI) != 0)
1379 fssproj = FSSPROC2FSSPROJ(fssproc);
1387 fsspri = fssproc->fss_fsspri;
1388 fsspri = (fsspri * fss_nice_decay[fssproc->fss_nice]) /
1390 fssproc->fss_fsspri = fsspri;
1403 fssproc);
1406 fss_newpri(fssproc, B_FALSE);
1409 fss_umdpri = fssproc->fss_umdpri;
1416 fss_change_priority(t, fssproc);
1625 fssproc_t *fssproc;
1636 fssproc = (fssproc_t *)bufp;
1637 ASSERT(fssproc != NULL);
1647 * Initialize the fssproc structure.
1649 fssproc->fss_umdpri = fss_maxumdpri / 2;
1655 fssproc->fss_nice = NZERO;
1656 fssproc->fss_uprilim = fssproc->fss_upri = 0;
1683 fssproc->fss_uprilim = reqfssuprilim;
1684 fssproc->fss_upri = reqfssupri;
1685 fssproc->fss_nice = NZERO - (NZERO * reqfssupri) / fss_maxupri;
1686 if (fssproc->fss_nice > FSS_NICE_MAX)
1687 fssproc->fss_nice = FSS_NICE_MAX;
1690 fssproc->fss_timeleft = fss_quantum;
1691 fssproc->fss_tp = t;
1692 cpucaps_sc_init(&fssproc->fss_caps);
1728 fssproc->fss_proj = fssproj;
1737 t->t_cldata = (void *)fssproc;
1739 fss_change_priority(t, fssproc);
1748 * Link new structure into fssproc list.
1750 FSS_LIST_INSERT(fssproc);
1771 fssproc_t *fssproc = (fssproc_t *)procp;
1775 kthread_t *t = fssproc->fss_tp;
1796 fssproj = FSSPROC2FSSPROJ(fssproc);
1800 if (fssproc->fss_runnable) {
1833 FSS_LIST_DELETE(fssproc);
1834 fss_free(fssproc);
1857 fssproc_t *pfssproc; /* ptr to parent's fssproc structure */
1858 fssproc_t *cfssproc; /* ptr to child's fssproc structure */
1877 * Initialize child's fssproc structure.
1901 * Link new structure into fssproc hash table.
1919 fssproc_t *fssproc;
1938 fssproc = FSSPROC(t);
1939 fss_newpri(fssproc, B_FALSE);
1940 fssproc->fss_timeleft = fss_quantum;
1941 t->t_pri = fssproc->fss_umdpri;
1943 fssproc->fss_flags &= ~FSSKPRI;
1950 fssproc->fss_flags &= ~FSSBACKQ;
1974 fssproc_t *fssproc = FSSPROC(t);
1977 fssparmsp->fss_uprilim = fssproc->fss_uprilim;
1978 fssparmsp->fss_upri = fssproc->fss_upri;
1988 fssproc_t *fssproc = FSSPROC(t);
1994 reqfssuprilim = fssproc->fss_uprilim;
1999 reqfssupri = fssproc->fss_upri;
2022 (reqfssuprilim > fssproc->fss_uprilim) &&
2037 fssproc->fss_uprilim = reqfssuprilim;
2038 fssproc->fss_upri = reqfssupri;
2039 fssproc->fss_nice = nice;
2040 fss_newpri(fssproc, B_FALSE);
2042 if ((fssproc->fss_flags & FSSKPRI) != 0) {
2047 fss_change_priority(t, fssproc);
2074 fssproc_t *fssproc;
2086 fssproc = FSSPROC(t);
2087 fssproj = FSSPROC2FSSPROJ(fssproc);
2102 ASSERT(fssproc->fss_runnable == 1);
2103 fssproc->fss_runnable = 0;
2110 fssproc->fss_proj = NULL; /* mark this thread as already exited */
2130 fssproc = FSSPROC(t);
2131 (void) cpucaps_charge(t, &fssproc->fss_caps,
2151 fssproc_t *fssproc = FSSPROC(t);
2161 if (INHERITED(t) || (fssproc->fss_flags & FSSKPRI)) {
2169 epri = fssproc->fss_umdpri;
2193 fssproc_t *fssproc = FSSPROC(t);
2201 (fssproc->fss_flags & FSSKPRI) ||
2253 fssproc_t *fssproc = FSSPROC(t);
2262 if (fssproc->fss_flags & FSSKPRI) {
2266 THREAD_CHANGE_PRI(t, fssproc->fss_umdpri);
2269 fssproc->fss_flags &= ~FSSKPRI;
2293 fssproc_t *fssproc = FSSPROC(t);
2306 if (!(fssproc->fss_flags & FSSKPRI) && lwp != NULL && t->t_kpri_req) {
2307 fssproc->fss_flags |= FSSKPRI;
2320 (void) cpucaps_charge(t, &fssproc->fss_caps,
2323 if (!(fssproc->fss_flags & FSSKPRI) && CPUCAPS_ENFORCE(t))
2347 if (fssproc->fss_timeleft > -SC_MAX_TICKS) {
2349 if (!(fssproc->fss_flags & FSSKPRI)) {
2354 if (!(fssproc->fss_flags & FSSRESTORE)) {
2355 fssproc->fss_scpri = t->t_pri;
2356 fssproc->fss_flags |= FSSRESTORE;
2365 if (fssproc->fss_flags & FSSRESTORE) {
2366 THREAD_CHANGE_PRI(t, fssproc->fss_scpri);
2367 fssproc->fss_flags &= ~FSSRESTORE;
2377 flags = fssproc->fss_flags & (FSSBACKQ | FSSKPRI);
2380 fssproc->fss_timeleft = fss_quantum;
2381 fssproc->fss_flags &= ~FSSBACKQ;
2384 fssproc->fss_flags &= ~FSSBACKQ;
2397 fssproc_t *fssproc = FSSPROC(t);
2404 fssproc->fss_timeleft = fss_quantum;
2406 fssproc->fss_flags &= ~FSSBACKQ;
2411 if ((fssproc->fss_flags & FSSKPRI) == 0)
2412 THREAD_CHANGE_PRI(t, fssproc->fss_umdpri);
2427 fssproc_t *fssproc = FSSPROC(t);
2437 (void) CPUCAPS_CHARGE(t, &fssproc->fss_caps, CPUCAPS_CHARGE_ENFORCE);
2450 fssproc->fss_flags |= FSSKPRI;
2453 } else if (fssproc->fss_flags & FSSKPRI) {
2460 fssproc->fss_flags &= ~FSSKPRI;
2461 THREAD_CHANGE_PRI(t, fssproc->fss_umdpri);
2476 fssproc_t *fssproc;
2489 fssproc = FSSPROC(t);
2490 fssproj = FSSPROC2FSSPROJ(fssproc);
2494 fssproj->fssp_ticks += fss_nice_tick[fssproc->fss_nice];
2496 fssproc->fss_ticks++;
2507 &fssproc->fss_caps, CPUCAPS_CHARGE_ENFORCE) &&
2508 !(fssproc->fss_flags & FSSKPRI);
2515 if ((fssproc->fss_flags & FSSKPRI) == 0) {
2519 if (--fssproc->fss_timeleft <= 0) {
2529 if (fssproc->fss_timeleft > -SC_MAX_TICKS) {
2537 fssproc->fss_flags &= ~FSSRESTORE;
2539 fss_newpri(fssproc, B_TRUE);
2540 new_pri = fssproc->fss_umdpri;
2554 fssproc->fss_timeleft = fss_quantum;
2569 if (cpucaps_enforce && 2 * fssproc->fss_timeleft > fss_quantum) {
2578 fss_newpri(fssproc, B_FALSE);
2579 if (t->t_pri != fssproc->fss_umdpri)
2580 fss_change_priority(t, fssproc);
2588 if (!(fssproc->fss_flags & FSSBACKQ))
2593 fssproc->fss_flags |= FSSBACKQ;
2610 fssproc_t *fssproc;
2618 fssproc = FSSPROC(t);
2619 fssproc->fss_flags &= ~FSSBACKQ;
2621 if (fssproc->fss_flags & FSSKPRI) {
2631 fssproc->fss_flags |= FSSKPRI;
2643 fssproc->fss_timeleft = fss_quantum;
2644 THREAD_CHANGE_PRI(t, fssproc->fss_umdpri);
2659 fssproc_t *fssproc = FSSPROC(t);
2667 *retvalp = fssproc->fss_nice - NZERO;
2684 newnice = fssproc->fss_nice + incr;
2706 fssproc->fss_nice = (char)newnice;
2721 fssproc_t *fssproc = FSSPROC(t);
2728 *retvalp = fssproc->fss_upri;
2732 newpri = fssproc->fss_upri + incr;
2765 fssproc_t *fssproc = FSSPROC(t);
2773 (void) CPUCAPS_CHARGE(t, &fssproc->fss_caps, CPUCAPS_CHARGE_ENFORCE);
2785 if (fssproc->fss_flags & FSSRESTORE) {
2786 THREAD_CHANGE_PRI(t, fssproc->fss_scpri);
2787 fssproc->fss_flags &= ~FSSRESTORE;
2789 if (fssproc->fss_timeleft < 0) {
2794 DTRACE_SCHED1(schedctl__yield, int, -fssproc->fss_timeleft);
2795 fssproc->fss_timeleft = fss_quantum;
2797 fssproc->fss_flags &= ~FSSBACKQ;
2810 fssproc_t *fssproc;
2822 fssproc = FSSPROC(t);
2824 fssproj_old = FSSPROC2FSSPROJ(fssproc);
2887 fssproc->fss_proj = fssproj_new;
2888 fssproc->fss_fsspri = 0;
2911 fssproc_t *fssproc;
2923 fssproc = FSSPROC(t);
2926 fssproj_old = FSSPROC2FSSPROJ(fssproc);
2973 fssproc->fss_proj = fssproj_new;
2974 fssproc->fss_fsspri = 0;