From 173b3d6d03875890b913bb771d1e5c5d73bda2be Mon Sep 17 00:00:00 2001 From: alc Date: Sun, 10 Jun 2007 23:39:07 +0000 Subject: Add the machine-specific definitions for configuring the new physical memory allocator. Set the size of phys_avail[] using one of these definitions. Approved by: re --- sys/ia64/ia64/machdep.c | 4 +++- sys/ia64/include/vmparam.h | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c index 6b8ec5a..761d079 100644 --- a/sys/ia64/ia64/machdep.c +++ b/sys/ia64/ia64/machdep.c @@ -146,7 +146,9 @@ struct msgbuf *msgbufp=0; long Maxmem = 0; long realmem = 0; -vm_offset_t phys_avail[100]; +#define PHYSMAP_SIZE (2 * VM_PHYSSEG_MAX) + +vm_paddr_t phys_avail[PHYSMAP_SIZE + 2]; /* must be 2 less so 0 0 can signal end of chunks */ #define PHYS_AVAIL_ARRAY_END ((sizeof(phys_avail) / sizeof(vm_offset_t)) - 2) diff --git a/sys/ia64/include/vmparam.h b/sys/ia64/include/vmparam.h index 55c9f4b..de047bf 100644 --- a/sys/ia64/include/vmparam.h +++ b/sys/ia64/include/vmparam.h @@ -116,6 +116,34 @@ #define VM_PHYSSEG_SPARSE /* + * The number of PHYSSEG entries is equal to the number of phys_avail + * entries. + */ +#define VM_PHYSSEG_MAX 49 + +/* + * Create two free page pools: VM_FREEPOOL_DEFAULT is the default pool + * from which physical pages are allocated and VM_FREEPOOL_DIRECT is + * the pool from which physical pages for small UMA objects are + * allocated. + */ +#define VM_NFREEPOOL 2 +#define VM_FREEPOOL_DEFAULT 0 +#define VM_FREEPOOL_DIRECT 1 + +/* + * Create one free page list. + */ +#define VM_NFREELIST 1 +#define VM_FREELIST_DEFAULT 0 + +/* + * An allocation size of 256MB is supported in order to optimize the + * use of the identity mappings in region 7 by UMA. + */ +#define VM_NFREEORDER 16 + +/* * Manipulating region bits of an address. */ #define IA64_RR_BASE(n) (((u_int64_t) (n)) << 61) -- cgit v1.1