Index: sys/sparc64/include/param.h =================================================================== --- sys/sparc64/include/param.h (revision 250260) +++ sys/sparc64/include/param.h (working copy) @@ -57,6 +57,10 @@ #define MAXCPU 1 #endif /* SMP || KLD_MODULE */ +#ifndef MAXDOMAIN +#define MAXDOMAIN 1 +#endif + #define INT_SHIFT 2 #define PTR_SHIFT 3 Index: sys/sparc64/include/vmparam.h =================================================================== --- sys/sparc64/include/vmparam.h (revision 250260) +++ sys/sparc64/include/vmparam.h (working copy) @@ -106,13 +106,6 @@ #define VM_NFREEORDER 12 /* - * Only one memory domain. - */ -#ifndef VM_NDOMAIN -#define VM_NDOMAIN 1 -#endif - -/* * Enable superpage reservations: 1 level. */ #ifndef VM_NRESERVLEVEL Index: sys/ia64/include/param.h =================================================================== --- sys/ia64/include/param.h (revision 250260) +++ sys/ia64/include/param.h (working copy) @@ -69,6 +69,10 @@ #define MAXCPU 1 #endif +#ifndef MAXDOMAIN +#define MAXDOMAIN 1 +#endif + #define ALIGNBYTES _ALIGNBYTES #define ALIGN(p) _ALIGN(p) /* Index: sys/ia64/include/vmparam.h =================================================================== --- sys/ia64/include/vmparam.h (revision 250260) +++ sys/ia64/include/vmparam.h (working copy) @@ -103,13 +103,6 @@ #define VM_NFREEORDER 16 /* - * Only one memory domain. - */ -#ifndef VM_NDOMAIN -#define VM_NDOMAIN 1 -#endif - -/* * Disable superpage reservations. */ #ifndef VM_NRESERVLEVEL Index: sys/vm/vm_phys.c =================================================================== --- sys/vm/vm_phys.c (revision 250260) +++ sys/vm/vm_phys.c (working copy) @@ -63,11 +63,11 @@ __FBSDID("$FreeBSD$"); #include /* - * VM_FREELIST_DEFAULT is split into VM_NDOMAIN lists, one for each + * VM_FREELIST_DEFAULT is split into MAXDOMAIN lists, one for each * domain. These extra lists are stored at the end of the regular * free lists starting with VM_NFREELIST. */ -#define VM_RAW_NFREELIST (VM_NFREELIST + VM_NDOMAIN - 1) +#define VM_RAW_NFREELIST (VM_NFREELIST + MAXDOMAIN - 1) struct vm_freelist { struct pglist pl; @@ -100,7 +100,7 @@ MALLOC_DEFINE(M_FICT_PAGES, "", ""); static struct vm_freelist vm_phys_free_queues[VM_RAW_NFREELIST][VM_NFREEPOOL][VM_NFREEORDER]; static struct vm_freelist -(*vm_phys_lookup_lists[VM_NDOMAIN][VM_RAW_NFREELIST])[VM_NFREEPOOL][VM_NFREEORDER]; +(*vm_phys_lookup_lists[MAXDOMAIN][VM_RAW_NFREELIST])[VM_NFREEPOOL][VM_NFREEORDER]; static int vm_nfreelists = VM_FREELIST_DEFAULT + 1; @@ -116,7 +116,7 @@ static int sysctl_vm_phys_segs(SYSCTL_HANDLER_ARGS SYSCTL_OID(_vm, OID_AUTO, phys_segs, CTLTYPE_STRING | CTLFLAG_RD, NULL, 0, sysctl_vm_phys_segs, "A", "Phys Seg Info"); -#if VM_NDOMAIN > 1 +#if MAXDOMAIN > 1 static int sysctl_vm_phys_lookup_lists(SYSCTL_HANDLER_ARGS); SYSCTL_OID(_vm, OID_AUTO, phys_lookup_lists, CTLTYPE_STRING | CTLFLAG_RD, NULL, 0, sysctl_vm_phys_lookup_lists, "A", "Phys Lookup Lists"); @@ -200,7 +200,7 @@ sysctl_vm_phys_segs(SYSCTL_HANDLER_ARGS) return (error); } -#if VM_NDOMAIN > 1 +#if MAXDOMAIN > 1 /* * Outputs the set of free list lookup lists. */ @@ -255,7 +255,7 @@ _vm_phys_create_seg(vm_paddr_t start, vm_paddr_t e #else seg->first_page = PHYS_TO_VM_PAGE(start); #endif -#if VM_NDOMAIN > 1 +#if MAXDOMAIN > 1 if (flind == VM_FREELIST_DEFAULT && domain != 0) { flind = VM_NFREELIST + (domain - 1); if (flind >= vm_nfreelists) @@ -302,7 +302,7 @@ vm_phys_init(void) { struct vm_freelist *fl; int flind, i, oind, pind; -#if VM_NDOMAIN > 1 +#if MAXDOMAIN > 1 int ndomains, j; #endif @@ -347,7 +347,7 @@ vm_phys_init(void) TAILQ_INIT(&fl[oind].pl); } } -#if VM_NDOMAIN > 1 +#if MAXDOMAIN > 1 /* * Build a free list lookup list for each domain. All of the * memory domain lists are inserted at the VM_FREELIST_DEFAULT @@ -444,7 +444,7 @@ vm_phys_alloc_pages(int pool, int order) KASSERT(order < VM_NFREEORDER, ("vm_phys_alloc_pages: order %d is out of range", order)); -#if VM_NDOMAIN > 1 +#if MAXDOMAIN > 1 domain = PCPU_GET(domain); #else domain = 0; @@ -925,7 +925,7 @@ vm_phys_alloc_contig(u_long npages, vm_paddr_t low int domain, flind, oind, order, pind; mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); -#if VM_NDOMAIN > 1 +#if MAXDOMAIN > 1 domain = PCPU_GET(domain); #else domain = 0; Index: sys/i386/include/param.h =================================================================== --- sys/i386/include/param.h (revision 250260) +++ sys/i386/include/param.h (working copy) @@ -64,6 +64,10 @@ #define MAXCPU 1 #endif /* SMP || KLD_MODULE */ +#ifndef MAXDOMAIN +#define MAXDOMAIN 1 +#endif + #define ALIGNBYTES _ALIGNBYTES #define ALIGN(p) _ALIGN(p) /* Index: sys/i386/include/vmparam.h =================================================================== --- sys/i386/include/vmparam.h (revision 250260) +++ sys/i386/include/vmparam.h (working copy) @@ -107,13 +107,6 @@ #endif /* - * Only one memory domain. - */ -#ifndef VM_NDOMAIN -#define VM_NDOMAIN 1 -#endif - -/* * Enable superpage reservations: 1 level. */ #ifndef VM_NRESERVLEVEL Index: sys/amd64/include/param.h =================================================================== --- sys/amd64/include/param.h (revision 250260) +++ sys/amd64/include/param.h (working copy) @@ -71,6 +71,10 @@ #define MAXCPU 1 #endif +#ifndef MAXDOMAIN +#define MAXDOMAIN 1 +#endif + #define ALIGNBYTES _ALIGNBYTES #define ALIGN(p) _ALIGN(p) /* Index: sys/amd64/include/vmparam.h =================================================================== --- sys/amd64/include/vmparam.h (revision 250260) +++ sys/amd64/include/vmparam.h (working copy) @@ -121,13 +121,6 @@ #define VM_NFREEORDER 13 /* - * Only one memory domain. - */ -#ifndef VM_NDOMAIN -#define VM_NDOMAIN 1 -#endif - -/* * Enable superpage reservations: 1 level. */ #ifndef VM_NRESERVLEVEL Index: sys/powerpc/include/param.h =================================================================== --- sys/powerpc/include/param.h (revision 250260) +++ sys/powerpc/include/param.h (working copy) @@ -75,6 +75,10 @@ #define MAXCPU 1 #endif /* SMP || KLD_MODULE */ +#ifndef MAXDOMAIN +#define MAXDOMAIN 1 +#endif + #define ALIGNBYTES _ALIGNBYTES #define ALIGN(p) _ALIGN(p) /* Index: sys/powerpc/include/vmparam.h =================================================================== --- sys/powerpc/include/vmparam.h (revision 250260) +++ sys/powerpc/include/vmparam.h (working copy) @@ -163,13 +163,6 @@ struct pmap_physseg { #define VM_NFREEORDER 11 /* - * Only one memory domain. - */ -#ifndef VM_NDOMAIN -#define VM_NDOMAIN 1 -#endif - -/* * Disable superpage reservations. */ #ifndef VM_NRESERVLEVEL Index: sys/arm/include/param.h =================================================================== --- sys/arm/include/param.h (revision 250260) +++ sys/arm/include/param.h (working copy) @@ -80,6 +80,10 @@ #define MAXCPU 1 #endif /* SMP || KLD_MODULE */ +#ifndef MAXDOMAIN +#define MAXDOMAIN 1 +#endif + #define ALIGNBYTES _ALIGNBYTES #define ALIGN(p) _ALIGN(p) /* Index: sys/arm/include/vmparam.h =================================================================== --- sys/arm/include/vmparam.h (revision 250260) +++ sys/arm/include/vmparam.h (working copy) @@ -109,13 +109,6 @@ #define VM_NFREEORDER 9 /* - * Only one memory domain. - */ -#ifndef VM_NDOMAIN -#define VM_NDOMAIN 1 -#endif - -/* * Disable superpage reservations. */ #ifndef VM_NRESERVLEVEL Index: sys/conf/options =================================================================== --- sys/conf/options (revision 250260) +++ sys/conf/options (working copy) @@ -568,6 +568,7 @@ DIAGNOSTIC opt_global.h INVARIANT_SUPPORT opt_global.h INVARIANTS opt_global.h MAXCPU opt_global.h +MAXDOMAIN opt_global.h MAXPHYS opt_global.h MCLSHIFT opt_global.h MUTEX_DEBUG opt_global.h @@ -584,7 +585,6 @@ VFS_BIO_DEBUG opt_global.h VM_KMEM_SIZE opt_vm.h VM_KMEM_SIZE_SCALE opt_vm.h VM_KMEM_SIZE_MAX opt_vm.h -VM_NDOMAIN opt_vm.h VM_NRESERVLEVEL opt_vm.h VM_LEVEL_0_ORDER opt_vm.h NO_SWAPPING opt_vm.h Index: sys/conf/NOTES =================================================================== --- sys/conf/NOTES (revision 250260) +++ sys/conf/NOTES (working copy) @@ -224,6 +224,10 @@ options SMP # Symmetric MultiProcessor Kernel # A default value should be already present, for every architecture. options MAXCPU=32 +# MAXDOMAIN defines the maximum number of memory domains that can boot in the +# system. A default value should be already present, for every architecture. +options MAXDOMAIN=1 + # ADAPTIVE_MUTEXES changes the behavior of blocking mutexes to spin # if the thread that currently owns the mutex is executing on another # CPU. This behavior is enabled by default, so this option can be used Index: sys/mips/include/param.h =================================================================== --- sys/mips/include/param.h (revision 250260) +++ sys/mips/include/param.h (working copy) @@ -101,6 +101,10 @@ #define MAXCPU 1 #endif +#ifndef MAXDOMAIN +#define MAXDOMAIN 1 +#endif + /* * Round p (pointer or byte index) up to a correctly-aligned value for all * data types (int, long, ...). The result is u_int and must be cast to Index: sys/mips/include/vmparam.h =================================================================== --- sys/mips/include/vmparam.h (revision 250260) +++ sys/mips/include/vmparam.h (working copy) @@ -101,13 +101,6 @@ #endif /* - * Only one memory domain. - */ -#ifndef VM_NDOMAIN -#define VM_NDOMAIN 1 -#endif - -/* * Disable superpage reservations. (not sure if this is right * I copied it from ARM) */ Index: sys/x86/acpica/srat.c =================================================================== --- sys/x86/acpica/srat.c (revision 250260) +++ sys/x86/acpica/srat.c (working copy) @@ -28,8 +28,6 @@ #include __FBSDID("$FreeBSD$"); -#include "opt_vm.h" - #include #include #include @@ -47,7 +45,7 @@ __FBSDID("$FreeBSD$"); #include -#if VM_NDOMAIN > 1 +#if MAXDOMAIN > 1 struct cpu_info { int enabled:1; int has_memory:1; @@ -265,7 +263,7 @@ renumber_domains(void) domains[j] = domains[j - 1]; domains[slot] = mem_info[i].domain; ndomain++; - if (ndomain > VM_NDOMAIN) { + if (ndomain > MAXDOMAIN) { printf("SRAT: Too many memory domains\n"); return (EFBIG); } @@ -362,4 +360,4 @@ srat_set_cpus(void *dummy) } } SYSINIT(srat_set_cpus, SI_SUB_CPU, SI_ORDER_ANY, srat_set_cpus, NULL); -#endif /* VM_NDOMAIN > 1 */ +#endif /* MAXDOMAIN > 1 */