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 }
|