Print this page
XXXX pass in cpu_pause_func via pause_cpus

*** 439,449 **** pg_cpupart_in(cp, oldpp); cpu_inmotion = NULL; return (EBUSY); } ! pause_cpus(cp); if (move_threads) { /* * The thread on cpu before the pause thread may have read * cpu_inmotion before we raised the barrier above. Check --- 439,449 ---- pg_cpupart_in(cp, oldpp); cpu_inmotion = NULL; return (EBUSY); } ! pause_cpus(cp, NULL); if (move_threads) { /* * The thread on cpu before the pause thread may have read * cpu_inmotion before we raised the barrier above. Check
*** 863,873 **** /* * Pause all CPUs while changing the partition list, to make sure * the clock thread (which traverses the list without holding * cpu_lock) isn't running. */ ! pause_cpus(NULL); pp->cp_next = cp_list_head; pp->cp_prev = cp_list_head->cp_prev; cp_list_head->cp_prev->cp_next = pp; cp_list_head->cp_prev = pp; start_cpus(); --- 863,873 ---- /* * Pause all CPUs while changing the partition list, to make sure * the clock thread (which traverses the list without holding * cpu_lock) isn't running. */ ! pause_cpus(NULL, NULL); pp->cp_next = cp_list_head; pp->cp_prev = cp_list_head->cp_prev; cp_list_head->cp_prev->cp_next = pp; cp_list_head->cp_prev = pp; start_cpus();
*** 1009,1019 **** /* * Pause all CPUs while changing the partition list, to make sure * the clock thread (which traverses the list without holding * cpu_lock) isn't running. */ ! pause_cpus(NULL); pp->cp_prev->cp_next = pp->cp_next; pp->cp_next->cp_prev = pp->cp_prev; if (cp_list_head == pp) cp_list_head = pp->cp_next; start_cpus(); --- 1009,1019 ---- /* * Pause all CPUs while changing the partition list, to make sure * the clock thread (which traverses the list without holding * cpu_lock) isn't running. */ ! pause_cpus(NULL, NULL); pp->cp_prev->cp_next = pp->cp_next; pp->cp_next->cp_prev = pp->cp_prev; if (cp_list_head == pp) cp_list_head = pp->cp_next; start_cpus();