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