src/os/solaris/vm/os_solaris.cpp

Print this page
rev 415 : 6718879: cannot build on solaris nevada
Reviewed-by:


3739   }
3740 
3741   memset(&ParmInfo, 0, sizeof(pcparms_t));
3742   ParmInfo.pc_cid = PC_CLNULL;
3743   rslt = (*priocntl_ptr)(PC_VERSION, P_LWPID, lwpid, PC_GETPARMS, (caddr_t)&ParmInfo);
3744   if (rslt < 0) return errno;
3745 
3746   if (ParmInfo.pc_cid == rtLimits.schedPolicy) {
3747     rtparms_t *rtInfo  = (rtparms_t*)ParmInfo.pc_clparms;
3748     rtInfo->rt_pri     = scale_to_lwp_priority (rtLimits.minPrio, rtLimits.maxPrio, newPrio);
3749     rtInfo->rt_tqsecs  = RT_NOCHANGE;
3750     rtInfo->rt_tqnsecs = RT_NOCHANGE;
3751     if (ThreadPriorityVerbose) {
3752       tty->print_cr("RT: %d->%d\n", newPrio, rtInfo->rt_pri);
3753     }
3754   } else if (ParmInfo.pc_cid == iaLimits.schedPolicy) {
3755     iaparms_t *iaInfo  = (iaparms_t*)ParmInfo.pc_clparms;
3756     int maxClamped     = MIN2(iaLimits.maxPrio, (int)iaInfo->ia_uprilim);
3757     iaInfo->ia_upri    = scale_to_lwp_priority(iaLimits.minPrio, maxClamped, newPrio);
3758     iaInfo->ia_uprilim = IA_NOCHANGE;
3759     iaInfo->ia_nice    = IA_NOCHANGE;
3760     iaInfo->ia_mode    = IA_NOCHANGE;
3761     if (ThreadPriorityVerbose) {
3762       tty->print_cr ("IA: [%d...%d] %d->%d\n",
3763                iaLimits.minPrio, maxClamped, newPrio, iaInfo->ia_upri);
3764     }
3765   } else if (ParmInfo.pc_cid == tsLimits.schedPolicy) {
3766     tsparms_t *tsInfo  = (tsparms_t*)ParmInfo.pc_clparms;
3767     int maxClamped     = MIN2(tsLimits.maxPrio, (int)tsInfo->ts_uprilim);
3768     prv                = tsInfo->ts_upri;
3769     tsInfo->ts_upri    = scale_to_lwp_priority(tsLimits.minPrio, maxClamped, newPrio);
3770     tsInfo->ts_uprilim = IA_NOCHANGE;
3771     if (ThreadPriorityVerbose) {
3772       tty->print_cr ("TS: %d [%d...%d] %d->%d\n",
3773                prv, tsLimits.minPrio, maxClamped, newPrio, tsInfo->ts_upri);
3774     }
3775     if (prv == tsInfo->ts_upri) return 0;
3776   } else {
3777     if ( ThreadPriorityVerbose ) {
3778       tty->print_cr ("Unknown scheduling class\n");
3779     }




3739   }
3740 
3741   memset(&ParmInfo, 0, sizeof(pcparms_t));
3742   ParmInfo.pc_cid = PC_CLNULL;
3743   rslt = (*priocntl_ptr)(PC_VERSION, P_LWPID, lwpid, PC_GETPARMS, (caddr_t)&ParmInfo);
3744   if (rslt < 0) return errno;
3745 
3746   if (ParmInfo.pc_cid == rtLimits.schedPolicy) {
3747     rtparms_t *rtInfo  = (rtparms_t*)ParmInfo.pc_clparms;
3748     rtInfo->rt_pri     = scale_to_lwp_priority (rtLimits.minPrio, rtLimits.maxPrio, newPrio);
3749     rtInfo->rt_tqsecs  = RT_NOCHANGE;
3750     rtInfo->rt_tqnsecs = RT_NOCHANGE;
3751     if (ThreadPriorityVerbose) {
3752       tty->print_cr("RT: %d->%d\n", newPrio, rtInfo->rt_pri);
3753     }
3754   } else if (ParmInfo.pc_cid == iaLimits.schedPolicy) {
3755     iaparms_t *iaInfo  = (iaparms_t*)ParmInfo.pc_clparms;
3756     int maxClamped     = MIN2(iaLimits.maxPrio, (int)iaInfo->ia_uprilim);
3757     iaInfo->ia_upri    = scale_to_lwp_priority(iaLimits.minPrio, maxClamped, newPrio);
3758     iaInfo->ia_uprilim = IA_NOCHANGE;

3759     iaInfo->ia_mode    = IA_NOCHANGE;
3760     if (ThreadPriorityVerbose) {
3761       tty->print_cr ("IA: [%d...%d] %d->%d\n",
3762                iaLimits.minPrio, maxClamped, newPrio, iaInfo->ia_upri);
3763     }
3764   } else if (ParmInfo.pc_cid == tsLimits.schedPolicy) {
3765     tsparms_t *tsInfo  = (tsparms_t*)ParmInfo.pc_clparms;
3766     int maxClamped     = MIN2(tsLimits.maxPrio, (int)tsInfo->ts_uprilim);
3767     prv                = tsInfo->ts_upri;
3768     tsInfo->ts_upri    = scale_to_lwp_priority(tsLimits.minPrio, maxClamped, newPrio);
3769     tsInfo->ts_uprilim = IA_NOCHANGE;
3770     if (ThreadPriorityVerbose) {
3771       tty->print_cr ("TS: %d [%d...%d] %d->%d\n",
3772                prv, tsLimits.minPrio, maxClamped, newPrio, tsInfo->ts_upri);
3773     }
3774     if (prv == tsInfo->ts_upri) return 0;
3775   } else {
3776     if ( ThreadPriorityVerbose ) {
3777       tty->print_cr ("Unknown scheduling class\n");
3778     }