Print this page
patch remove-load-flag


 637         if (p->p_rprof_cyclic == CYCLIC_NONE ||
 638             (t = p->p_tlist) == NULL) {
 639                 mutex_exit(&p->p_lock);
 640                 return;
 641         }
 642         do {
 643                 int mstate;
 644 
 645                 /*
 646                  * Attempt to allocate the SIGPROF buffer, but don't sleep.
 647                  */
 648                 if (t->t_rprof == NULL)
 649                         t->t_rprof = kmem_zalloc(sizeof (struct rprof),
 650                             KM_NOSLEEP);
 651                 if (t->t_rprof == NULL)
 652                         continue;
 653 
 654                 thread_lock(t);
 655                 switch (t->t_state) {
 656                 case TS_SLEEP:
 657                         /*
 658                          * Don't touch the lwp is it is swapped out.
 659                          */
 660                         if (!(t->t_schedflag & TS_LOAD)) {
 661                                 mstate = LMS_SLEEP;
 662                                 break;
 663                         }
 664                         switch (mstate = ttolwp(t)->lwp_mstate.ms_prev) {
 665                         case LMS_TFAULT:
 666                         case LMS_DFAULT:
 667                         case LMS_KFAULT:
 668                         case LMS_USER_LOCK:
 669                                 break;
 670                         default:
 671                                 mstate = LMS_SLEEP;
 672                                 break;
 673                         }
 674                         break;
 675                 case TS_RUN:
 676                 case TS_WAIT:
 677                         mstate = LMS_WAIT_CPU;
 678                         break;
 679                 case TS_ONPROC:
 680                         switch (mstate = t->t_mstate) {
 681                         case LMS_USER:
 682                         case LMS_SYSTEM:
 683                         case LMS_TRAP:




 637         if (p->p_rprof_cyclic == CYCLIC_NONE ||
 638             (t = p->p_tlist) == NULL) {
 639                 mutex_exit(&p->p_lock);
 640                 return;
 641         }
 642         do {
 643                 int mstate;
 644 
 645                 /*
 646                  * Attempt to allocate the SIGPROF buffer, but don't sleep.
 647                  */
 648                 if (t->t_rprof == NULL)
 649                         t->t_rprof = kmem_zalloc(sizeof (struct rprof),
 650                             KM_NOSLEEP);
 651                 if (t->t_rprof == NULL)
 652                         continue;
 653 
 654                 thread_lock(t);
 655                 switch (t->t_state) {
 656                 case TS_SLEEP:







 657                         switch (mstate = ttolwp(t)->lwp_mstate.ms_prev) {
 658                         case LMS_TFAULT:
 659                         case LMS_DFAULT:
 660                         case LMS_KFAULT:
 661                         case LMS_USER_LOCK:
 662                                 break;
 663                         default:
 664                                 mstate = LMS_SLEEP;
 665                                 break;
 666                         }
 667                         break;
 668                 case TS_RUN:
 669                 case TS_WAIT:
 670                         mstate = LMS_WAIT_CPU;
 671                         break;
 672                 case TS_ONPROC:
 673                         switch (mstate = t->t_mstate) {
 674                         case LMS_USER:
 675                         case LMS_SYSTEM:
 676                         case LMS_TRAP: