Print this page
XXXX pass in cpu_pause_func via pause_cpus


3285                 pt_start = hat_getpfnum(kas.a_hat, (caddr_t)seg->pages);
3286 
3287                 /* Meta data is required to be at the beginning */
3288                 ASSERT(pt_start < seg->pages_base);
3289         } else
3290                 pt_start = seg->pages_base;
3291 
3292         return (pt_start);
3293 }
3294 
3295 /*
3296  * Invalidate memseg pointers in cpu private vm data caches.
3297  */
3298 static void
3299 memseg_cpu_vm_flush()
3300 {
3301         cpu_t *cp;
3302         vm_cpu_data_t *vc;
3303 
3304         mutex_enter(&cpu_lock);
3305         pause_cpus(NULL);
3306 
3307         cp = cpu_list;
3308         do {
3309                 vc = cp->cpu_vm_data;
3310                 vc->vc_pnum_memseg = NULL;
3311                 vc->vc_pnext_memseg = NULL;
3312 
3313         } while ((cp = cp->cpu_next) != cpu_list);
3314 
3315         start_cpus();
3316         mutex_exit(&cpu_lock);
3317 }


3285                 pt_start = hat_getpfnum(kas.a_hat, (caddr_t)seg->pages);
3286 
3287                 /* Meta data is required to be at the beginning */
3288                 ASSERT(pt_start < seg->pages_base);
3289         } else
3290                 pt_start = seg->pages_base;
3291 
3292         return (pt_start);
3293 }
3294 
3295 /*
3296  * Invalidate memseg pointers in cpu private vm data caches.
3297  */
3298 static void
3299 memseg_cpu_vm_flush()
3300 {
3301         cpu_t *cp;
3302         vm_cpu_data_t *vc;
3303 
3304         mutex_enter(&cpu_lock);
3305         pause_cpus(NULL, NULL);
3306 
3307         cp = cpu_list;
3308         do {
3309                 vc = cp->cpu_vm_data;
3310                 vc->vc_pnum_memseg = NULL;
3311                 vc->vc_pnext_memseg = NULL;
3312 
3313         } while ((cp = cp->cpu_next) != cpu_list);
3314 
3315         start_cpus();
3316         mutex_exit(&cpu_lock);
3317 }