Lines Matching refs:tspp

124 #define	TS_NEWUMDPRI(tspp) \  argument
127 pri = (tspp)->ts_cpupri + (tspp)->ts_upri + (tspp)->ts_boost; \
129 (tspp)->ts_umdpri = ts_maxumdpri; \
131 (tspp)->ts_umdpri = 0; \
133 (tspp)->ts_umdpri = pri; \
134 ASSERT((tspp)->ts_umdpri >= 0 && (tspp)->ts_umdpri <= ts_maxumdpri); \
157 #define TS_LIST_INSERT(tspp) \ argument
159 int index = TS_LIST_HASH(tspp->ts_tp); \
163 tspp->ts_next = headp->ts_next; \
164 tspp->ts_prev = headp; \
165 headp->ts_next->ts_prev = tspp; \
166 headp->ts_next = tspp; \
173 #define TS_LIST_DELETE(tspp) \ argument
175 int index = TS_LIST_HASH(tspp->ts_tp); \
178 tspp->ts_prev->ts_next = tspp->ts_next; \
179 tspp->ts_next->ts_prev = tspp->ts_prev; \
548 tsproc_t *tspp; in ts_enterclass() local
554 tspp = (tsproc_t *)bufp; in ts_enterclass()
555 ASSERT(tspp != NULL); in ts_enterclass()
560 tspp->ts_cpupri = tsmedumdpri; in ts_enterclass()
575 tspp->ts_flags = TSIA | TSIASET; in ts_enterclass()
576 tspp->ts_boost = ia_boost; in ts_enterclass()
578 tspp->ts_flags = 0; in ts_enterclass()
579 tspp->ts_boost = 0; in ts_enterclass()
586 tspp->ts_uprilim = tspp->ts_upri = 0; in ts_enterclass()
587 tspp->ts_nice = NZERO; in ts_enterclass()
617 tspp->ts_uprilim = reqtsuprilim; in ts_enterclass()
618 tspp->ts_upri = reqtsupri; in ts_enterclass()
619 tspp->ts_nice = NZERO - (NZERO * reqtsupri) / ts_maxupri; in ts_enterclass()
621 TS_NEWUMDPRI(tspp); in ts_enterclass()
623 tspp->ts_dispwait = 0; in ts_enterclass()
624 tspp->ts_timeleft = ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_enterclass()
625 tspp->ts_tp = t; in ts_enterclass()
626 cpucaps_sc_init(&tspp->ts_caps); in ts_enterclass()
636 t->t_cldata = (void *)tspp; in ts_enterclass()
638 ts_change_priority(t, tspp); in ts_enterclass()
644 TS_LIST_INSERT(tspp); in ts_enterclass()
666 tsproc_t *tspp = (tsproc_t *)procp; in ts_exitclass() local
669 TS_LIST_DELETE(tspp); in ts_exitclass()
670 kmem_free(tspp, sizeof (tsproc_t)); in ts_exitclass()
732 tsproc_t *tspp; in ts_forkret() local
750 tspp = (tsproc_t *)(t->t_cldata); in ts_forkret()
751 tspp->ts_cpupri = ts_dptbl[tspp->ts_cpupri].ts_tqexp; in ts_forkret()
752 TS_NEWUMDPRI(tspp); in ts_forkret()
753 tspp->ts_timeleft = ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_forkret()
754 tspp->ts_dispwait = 0; in ts_forkret()
755 t->t_pri = ts_dptbl[tspp->ts_umdpri].ts_globpri; in ts_forkret()
757 tspp->ts_flags &= ~TSKPRI; in ts_forkret()
829 tsproc_t *tspp = (tsproc_t *)t->t_cldata; in ts_parmsget() local
832 tsparmsp->ts_uprilim = tspp->ts_uprilim; in ts_parmsget()
833 tsparmsp->ts_upri = tspp->ts_upri; in ts_parmsget()
839 tsproc_t *tspp = (tsproc_t *)t->t_cldata; in ia_parmsget() local
842 iaparmsp->ia_uprilim = tspp->ts_uprilim; in ia_parmsget()
843 iaparmsp->ia_upri = tspp->ts_upri; in ia_parmsget()
844 if (tspp->ts_flags & TSIASET) in ia_parmsget()
1165 tsproc_t *tspp = (tsproc_t *)tx->t_cldata; in ts_parmsset() local
1170 reqtsuprilim = tspp->ts_uprilim; in ts_parmsset()
1175 reqtsupri = tspp->ts_upri; in ts_parmsset()
1200 reqtsuprilim > tspp->ts_uprilim && in ts_parmsset()
1215 tspp->ts_uprilim = reqtsuprilim; in ts_parmsset()
1216 tspp->ts_upri = reqtsupri; in ts_parmsset()
1217 TS_NEWUMDPRI(tspp); in ts_parmsset()
1218 tspp->ts_nice = nice; in ts_parmsset()
1220 if ((tspp->ts_flags & TSKPRI) != 0) { in ts_parmsset()
1225 tspp->ts_dispwait = 0; in ts_parmsset()
1226 ts_change_priority(tx, tspp); in ts_parmsset()
1235 tsproc_t *tspp = (tsproc_t *)tx->t_cldata; in ia_parmsset() local
1282 tspp->ts_flags |= TSIASET; in ia_parmsset()
1313 tspp->ts_flags |= TSIASET; in ia_parmsset()
1314 tspp->ts_boost = ia_boost; in ia_parmsset()
1316 tspp->ts_flags &= ~TSIASET; in ia_parmsset()
1317 tspp->ts_boost = -ia_boost; in ia_parmsset()
1327 tsproc_t *tspp; in ts_exit() local
1340 tspp = (tsproc_t *)t->t_cldata; in ts_exit()
1341 (void) cpucaps_charge(t, &tspp->ts_caps, CPUCAPS_CHARGE_ONLY); in ts_exit()
1353 tsproc_t *tspp; in ts_globpri() local
1357 tspp = (tsproc_t *)t->t_cldata; in ts_globpri()
1358 tspri = tsmedumdpri + tspp->ts_upri; in ts_globpri()
1375 tsproc_t *tspp = (tsproc_t *)(t->t_cldata); in ts_preempt() local
1386 if (!(tspp->ts_flags & TSKPRI) && lwp != NULL && t->t_kpri_req) { in ts_preempt()
1387 tspp->ts_flags |= TSKPRI; in ts_preempt()
1400 (void) cpucaps_charge(t, &tspp->ts_caps, in ts_preempt()
1402 if (!(tspp->ts_flags & TSKPRI) && CPUCAPS_ENFORCE(t)) in ts_preempt()
1426 if (tspp->ts_timeleft > -SC_MAX_TICKS) { in ts_preempt()
1428 if (!(tspp->ts_flags & TSKPRI)) { in ts_preempt()
1433 if (!(tspp->ts_flags & TSRESTORE)) { in ts_preempt()
1434 tspp->ts_scpri = t->t_pri; in ts_preempt()
1435 tspp->ts_flags |= TSRESTORE; in ts_preempt()
1444 if (tspp->ts_flags & TSRESTORE) { in ts_preempt()
1445 THREAD_CHANGE_PRI(t, tspp->ts_scpri); in ts_preempt()
1446 tspp->ts_flags &= ~TSRESTORE; in ts_preempt()
1459 if ((tspp->ts_flags & (TSBACKQ|TSKPRI)) == TSBACKQ) { in ts_preempt()
1460 tspp->ts_timeleft = ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_preempt()
1461 tspp->ts_dispwait = 0; in ts_preempt()
1462 tspp->ts_flags &= ~TSBACKQ; in ts_preempt()
1464 } else if ((tspp->ts_flags & (TSBACKQ|TSKPRI)) == (TSBACKQ|TSKPRI)) { in ts_preempt()
1465 tspp->ts_flags &= ~TSBACKQ; in ts_preempt()
1479 tsproc_t *tspp = (tsproc_t *)(t->t_cldata); in ts_setrun() local
1483 if (tspp->ts_dispwait > ts_dptbl[tspp->ts_umdpri].ts_maxwait) { in ts_setrun()
1484 tspp->ts_cpupri = ts_dptbl[tspp->ts_cpupri].ts_slpret; in ts_setrun()
1485 TS_NEWUMDPRI(tspp); in ts_setrun()
1486 tspp->ts_timeleft = ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_setrun()
1487 tspp->ts_dispwait = 0; in ts_setrun()
1488 if ((tspp->ts_flags & TSKPRI) == 0) { in ts_setrun()
1490 ts_dptbl[tspp->ts_umdpri].ts_globpri); in ts_setrun()
1495 tspp->ts_flags &= ~TSBACKQ; in ts_setrun()
1497 if (tspp->ts_flags & TSIA) { in ts_setrun()
1498 if (tspp->ts_flags & TSIASET) in ts_setrun()
1518 tsproc_t *tspp = (tsproc_t *)(t->t_cldata); in ts_sleep() local
1528 (void) CPUCAPS_CHARGE(t, &tspp->ts_caps, CPUCAPS_CHARGE_ENFORCE); in ts_sleep()
1530 flags = tspp->ts_flags; in ts_sleep()
1532 tspp->ts_flags = flags | TSKPRI; in ts_sleep()
1537 } else if (tspp->ts_dispwait > ts_dptbl[tspp->ts_umdpri].ts_maxwait) { in ts_sleep()
1542 tspp->ts_cpupri = ts_dptbl[tspp->ts_cpupri].ts_slpret; in ts_sleep()
1543 TS_NEWUMDPRI(tspp); in ts_sleep()
1544 tspp->ts_timeleft = ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_sleep()
1545 tspp->ts_dispwait = 0; in ts_sleep()
1548 ts_dptbl[tspp->ts_umdpri].ts_globpri); in ts_sleep()
1551 tspp->ts_flags = flags & ~TSKPRI; in ts_sleep()
1557 ts_dptbl[tspp->ts_umdpri].ts_globpri); in ts_sleep()
1560 tspp->ts_flags = flags & ~TSKPRI; in ts_sleep()
1583 tsproc_t *tspp = (tsproc_t *)(t->t_cldata); in ts_swapin() local
1597 if (INHERITED(t) || (tspp->ts_flags & (TSKPRI | TSIASET))) in ts_swapin()
1605 epri = ts_dptbl[tspp->ts_umdpri].ts_globpri; in ts_swapin()
1644 tsproc_t *tspp = (tsproc_t *)(t->t_cldata); in ts_swapout() local
1651 if (INHERITED(t) || (tspp->ts_flags & (TSKPRI | TSIASET)) || in ts_swapout()
1676 pri = ts_dptbl[tspp->ts_umdpri].ts_globpri; in ts_swapout()
1705 tsproc_t *tspp = (tsproc_t *)(t->t_cldata); in ts_tick() local
1719 call_cpu_surrender = cpucaps_charge(t, &tspp->ts_caps, in ts_tick()
1720 CPUCAPS_CHARGE_ENFORCE) && !(tspp->ts_flags & TSKPRI); in ts_tick()
1723 if ((tspp->ts_flags & TSKPRI) == 0) { in ts_tick()
1724 if (--tspp->ts_timeleft <= 0) { in ts_tick()
1734 if (tspp->ts_timeleft > -SC_MAX_TICKS) { in ts_tick()
1747 tspp->ts_flags &= ~TSRESTORE; in ts_tick()
1748 tspp->ts_cpupri = ts_dptbl[tspp->ts_cpupri].ts_tqexp; in ts_tick()
1749 TS_NEWUMDPRI(tspp); in ts_tick()
1750 tspp->ts_dispwait = 0; in ts_tick()
1751 new_pri = ts_dptbl[tspp->ts_umdpri].ts_globpri; in ts_tick()
1765 tspp->ts_timeleft = in ts_tick()
1766 ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_tick()
1779 tspp->ts_flags |= TSBACKQ; in ts_tick()
1797 tsproc_t *tspp = (tsproc_t *)t->t_cldata; in ts_trapret() local
1807 if (tspp->ts_dispwait > ts_dptbl[tspp->ts_umdpri].ts_maxwait) { in ts_trapret()
1808 tspp->ts_cpupri = ts_dptbl[tspp->ts_cpupri].ts_slpret; in ts_trapret()
1809 TS_NEWUMDPRI(tspp); in ts_trapret()
1810 tspp->ts_timeleft = ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_trapret()
1811 tspp->ts_dispwait = 0; in ts_trapret()
1817 THREAD_CHANGE_PRI(t, ts_dptbl[tspp->ts_umdpri].ts_globpri); in ts_trapret()
1820 tspp->ts_flags &= ~TSKPRI; in ts_trapret()
1824 } else if (tspp->ts_flags & TSKPRI) { in ts_trapret()
1829 THREAD_CHANGE_PRI(t, ts_dptbl[tspp->ts_umdpri].ts_globpri); in ts_trapret()
1832 tspp->ts_flags &= ~TSKPRI; in ts_trapret()
1842 if ((t->t_schedflag & TS_SWAPENQ) && !(tspp->ts_flags & TSIASET)) { in ts_trapret()
1915 tsproc_t *tspp; in ts_update_list() local
1920 for (tspp = ts_plisthead[i].ts_next; tspp != &ts_plisthead[i]; in ts_update_list()
1921 tspp = tspp->ts_next) { in ts_update_list()
1922 tx = tspp->ts_tp; in ts_update_list()
1933 tspp->ts_dispwait++; in ts_update_list()
1934 if ((tspp->ts_flags & TSKPRI) != 0) in ts_update_list()
1936 if (tspp->ts_dispwait <= ts_dptbl[tspp->ts_umdpri].ts_maxwait) in ts_update_list()
1947 tspp->ts_cpupri = ts_dptbl[tspp->ts_cpupri].ts_lwait; in ts_update_list()
1948 TS_NEWUMDPRI(tspp); in ts_update_list()
1949 tspp->ts_dispwait = 0; in ts_update_list()
1956 if (tx->t_pri != ts_dptbl[tspp->ts_umdpri].ts_globpri) { in ts_update_list()
1958 ts_change_priority(tx, tspp); in ts_update_list()
1981 tsproc_t *tspp = (tsproc_t *)(t->t_cldata); in ts_wakeup() local
1987 if (tspp->ts_flags & TSKPRI) { in ts_wakeup()
1988 tspp->ts_flags &= ~TSBACKQ; in ts_wakeup()
1989 if (tspp->ts_flags & TSIASET) in ts_wakeup()
1997 tspp->ts_flags |= TSKPRI; in ts_wakeup()
2003 if (tspp->ts_dispwait > ts_dptbl[tspp->ts_umdpri].ts_maxwait) { in ts_wakeup()
2004 tspp->ts_cpupri = ts_dptbl[tspp->ts_cpupri].ts_slpret; in ts_wakeup()
2005 TS_NEWUMDPRI(tspp); in ts_wakeup()
2006 tspp->ts_timeleft = in ts_wakeup()
2007 ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_wakeup()
2008 tspp->ts_dispwait = 0; in ts_wakeup()
2010 ts_dptbl[tspp->ts_umdpri].ts_globpri); in ts_wakeup()
2014 tspp->ts_flags &= ~TSBACKQ; in ts_wakeup()
2016 if (tspp->ts_flags & TSIA) { in ts_wakeup()
2017 if (tspp->ts_flags & TSIASET) in ts_wakeup()
2037 tsproc_t *tspp = (tsproc_t *)(t->t_cldata); in ts_yield() local
2045 (void) CPUCAPS_CHARGE(t, &tspp->ts_caps, CPUCAPS_CHARGE_ENFORCE); in ts_yield()
2057 if (tspp->ts_flags & TSRESTORE) { in ts_yield()
2058 THREAD_CHANGE_PRI(t, tspp->ts_scpri); in ts_yield()
2059 tspp->ts_flags &= ~TSRESTORE; in ts_yield()
2061 if (tspp->ts_timeleft <= 0) { in ts_yield()
2066 DTRACE_SCHED1(schedctl__yield, int, -tspp->ts_timeleft); in ts_yield()
2067 tspp->ts_cpupri = ts_dptbl[tspp->ts_cpupri].ts_tqexp; in ts_yield()
2068 TS_NEWUMDPRI(tspp); in ts_yield()
2069 tspp->ts_timeleft = ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_yield()
2070 tspp->ts_dispwait = 0; in ts_yield()
2071 THREAD_CHANGE_PRI(t, ts_dptbl[tspp->ts_umdpri].ts_globpri); in ts_yield()
2074 tspp->ts_flags &= ~TSBACKQ; in ts_yield()
2087 tsproc_t *tspp = (tsproc_t *)(t->t_cldata); in ts_donice() local
2095 *retvalp = tspp->ts_nice - NZERO; in ts_donice()
2114 newnice = tspp->ts_nice + incr; in ts_donice()
2137 tspp->ts_nice = (char)newnice; in ts_donice()
2152 tsproc_t *tspp = (tsproc_t *)(t->t_cldata); in ts_doprio() local
2159 *retvalp = tspp->ts_upri; in ts_doprio()
2163 newpri = tspp->ts_upri + incr; in ts_doprio()
2193 tsproc_t *tspp; in ia_set_process_group() local
2221 tspp = tx->t_cldata; in ia_set_process_group()
2229 if (!(tspp->ts_flags & TSIASET) || in ia_set_process_group()
2290 tspp = tx->t_cldata; in ia_set_process_group()
2291 tspp->ts_flags |= TSIASET; in ia_set_process_group()
2292 tspp->ts_boost = ia_boost; in ia_set_process_group()
2293 TS_NEWUMDPRI(tspp); in ia_set_process_group()
2294 if ((tspp->ts_flags & TSKPRI) != 0) { in ia_set_process_group()
2298 tspp->ts_dispwait = 0; in ia_set_process_group()
2299 ts_change_priority(tx, tspp); in ia_set_process_group()
2343 tspp = tx->t_cldata; in ia_set_process_group()
2344 tspp->ts_flags &= ~TSIASET; in ia_set_process_group()
2345 tspp->ts_boost = -ia_boost; in ia_set_process_group()
2346 TS_NEWUMDPRI(tspp); in ia_set_process_group()
2347 if ((tspp->ts_flags & TSKPRI) != 0) { in ia_set_process_group()
2352 tspp->ts_dispwait = 0; in ia_set_process_group()
2353 ts_change_priority(tx, tspp); in ia_set_process_group()
2362 ts_change_priority(kthread_t *t, tsproc_t *tspp) in ts_change_priority() argument
2367 new_pri = ts_dptbl[tspp->ts_umdpri].ts_globpri; in ts_change_priority()
2369 tspp->ts_flags &= ~TSRESTORE; in ts_change_priority()
2370 t->t_cpri = tspp->ts_upri; in ts_change_priority()
2378 tspp->ts_flags |= TSBACKQ; in ts_change_priority()
2381 tspp->ts_timeleft = in ts_change_priority()
2382 ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_change_priority()
2387 frontq = (tspp->ts_flags & TSIASET) != 0; in ts_change_priority()
2401 tspp->ts_timeleft = in ts_change_priority()
2402 ts_dptbl[tspp->ts_cpupri].ts_quantum; in ts_change_priority()
2404 tspp->ts_flags |= TSBACKQ; in ts_change_priority()