mem_affinity
struct mem_affinity mem_info[VM_PHYSSEG_MAX + 1];
struct mem_affinity *mi;
static struct mem_affinity mem_info[VM_PHYSSEG_MAX + 1];
if (mem_affinity != NULL) {
size = mem_affinity[i].end - mem_affinity[i].start;
if (domain != -1 && mem_affinity[i].domain != domain)
mem_start = mem_affinity[mem_index].start;
mem_end = mem_affinity[mem_index].end;
if (mem_affinity != NULL) {
for (i = 0; mem_affinity[i].end != 0; i++) {
idx = vm_phys_avail_find(mem_affinity[i].start);
vm_phys_avail_split(mem_affinity[i].start, idx);
idx = vm_phys_avail_find(mem_affinity[i].end);
vm_phys_avail_split(mem_affinity[i].end, idx);
if (vm_ndomains == 1 || mem_affinity == NULL)
for (i = 0; mem_affinity[i].end != 0; i++)
if (mem_affinity[i].start <= high &&
mem_affinity[i].end >= low)
DOMAINSET_SET(mem_affinity[i].domain, &mask);
if (mem_affinity == NULL) {
if (mem_affinity[i].end == 0)
if (mem_affinity[i].end <= start)
if (mem_affinity[i].start > start)
if (mem_affinity[i].end >= end) {
mem_affinity[i].domain);
_vm_phys_create_seg(start, mem_affinity[i].end,
mem_affinity[i].domain);
start = mem_affinity[i].end;
struct mem_affinity *affinity __numa_used, int *locality __numa_used)
mem_affinity = affinity;
struct mem_affinity __read_mostly *mem_affinity;
mem_affinity[i].end >= pa)
return (mem_affinity[i].domain);
extern struct mem_affinity *mem_affinity;
void vm_phys_register_domains(int ndomains, struct mem_affinity *affinity,
for (i = 0; mem_affinity[i].end != 0; i++)
if (mem_affinity[i].start <= pa &&