Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/amd64/mp_machdep.c
Show First 20 Lines • Show All 374 Lines • ▼ Show 20 Lines | |||||
#ifdef NUMA | #ifdef NUMA | ||||
static void | static void | ||||
mp_realloc_pcpu(int cpuid, int domain) | mp_realloc_pcpu(int cpuid, int domain) | ||||
{ | { | ||||
vm_page_t m; | vm_page_t m; | ||||
vm_offset_t oa, na; | vm_offset_t oa, na; | ||||
oa = (vm_offset_t)&__pcpu[cpuid]; | oa = (vm_offset_t)&__pcpu[cpuid]; | ||||
if (_vm_phys_domain(pmap_kextract(oa)) == domain) | if (vm_phys_domain(pmap_kextract(oa)) == domain) | ||||
return; | return; | ||||
m = vm_page_alloc_domain(NULL, 0, domain, | m = vm_page_alloc_domain(NULL, 0, domain, | ||||
VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); | VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); | ||||
if (m == NULL) | if (m == NULL) | ||||
return; | return; | ||||
na = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); | na = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); | ||||
pagecopy((void *)oa, (void *)na); | pagecopy((void *)oa, (void *)na); | ||||
pmap_qenter((vm_offset_t)&__pcpu[cpuid], &m, 1); | pmap_qenter((vm_offset_t)&__pcpu[cpuid], &m, 1); | ||||
▲ Show 20 Lines • Show All 748 Lines • Show Last 20 Lines |