Print this page
XXXX pass in cpu_pause_func via pause_cpus

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/disp/cpupart.c
          +++ new/usr/src/uts/common/disp/cpupart.c
↓ open down ↓ 433 lines elided ↑ open up ↑
 434  434                   * This CPU must be the last CPU in a processor set with
 435  435                   * a bound cyclic.
 436  436                   */
 437  437                  cpu_state_change_notify(cp->cpu_id, CPU_CPUPART_IN);
 438  438                  pg_cpupart_out(cp, newpp);
 439  439                  pg_cpupart_in(cp, oldpp);
 440  440                  cpu_inmotion = NULL;
 441  441                  return (EBUSY);
 442  442          }
 443  443  
 444      -        pause_cpus(cp);
      444 +        pause_cpus(cp, NULL);
 445  445  
 446  446          if (move_threads) {
 447  447                  /*
 448  448                   * The thread on cpu before the pause thread may have read
 449  449                   * cpu_inmotion before we raised the barrier above.  Check
 450  450                   * again.
 451  451                   */
 452  452                  if (disp_bound_threads(cp, 1)) {
 453  453                          start_cpus();
 454  454                          goto again;
↓ open down ↓ 403 lines elided ↑ open up ↑
 858  858           * Initialize and size the partition's bitset of halted CPUs.
 859  859           */
 860  860          bitset_init_fanout(&pp->cp_haltset, cp_haltset_fanout);
 861  861          bitset_resize(&pp->cp_haltset, max_ncpus);
 862  862  
 863  863          /*
 864  864           * Pause all CPUs while changing the partition list, to make sure
 865  865           * the clock thread (which traverses the list without holding
 866  866           * cpu_lock) isn't running.
 867  867           */
 868      -        pause_cpus(NULL);
      868 +        pause_cpus(NULL, NULL);
 869  869          pp->cp_next = cp_list_head;
 870  870          pp->cp_prev = cp_list_head->cp_prev;
 871  871          cp_list_head->cp_prev->cp_next = pp;
 872  872          cp_list_head->cp_prev = pp;
 873  873          start_cpus();
 874  874          mutex_exit(&cpu_lock);
 875  875  
 876  876          return (0);
 877  877  }
 878  878  
↓ open down ↓ 125 lines elided ↑ open up ↑
1004 1004                          cp->cpu_part = newpp;
1005 1005                  }
1006 1006                  cp = cp->cpu_next;
1007 1007          } while (cp != first_cp);
1008 1008  
1009 1009          /*
1010 1010           * Pause all CPUs while changing the partition list, to make sure
1011 1011           * the clock thread (which traverses the list without holding
1012 1012           * cpu_lock) isn't running.
1013 1013           */
1014      -        pause_cpus(NULL);
     1014 +        pause_cpus(NULL, NULL);
1015 1015          pp->cp_prev->cp_next = pp->cp_next;
1016 1016          pp->cp_next->cp_prev = pp->cp_prev;
1017 1017          if (cp_list_head == pp)
1018 1018                  cp_list_head = pp->cp_next;
1019 1019          start_cpus();
1020 1020  
1021 1021          if (cp_id_next > pp->cp_id)
1022 1022                  cp_id_next = pp->cp_id;
1023 1023  
1024 1024          if (pp->cp_kstat)
↓ open down ↓ 207 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX