diff options
author | alc <alc@FreeBSD.org> | 2007-06-10 23:39:07 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2007-06-10 23:39:07 +0000 |
commit | 173b3d6d03875890b913bb771d1e5c5d73bda2be (patch) | |
tree | aa9ddf6b2c464b20c999d825ccf49d3ec8ef6be8 /sys/ia64 | |
parent | 532a6856ededcca631ce6c87024395ba4d4818be (diff) | |
download | FreeBSD-src-173b3d6d03875890b913bb771d1e5c5d73bda2be.zip FreeBSD-src-173b3d6d03875890b913bb771d1e5c5d73bda2be.tar.gz |
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
Diffstat (limited to 'sys/ia64')
-rw-r--r-- | sys/ia64/ia64/machdep.c | 4 | ||||
-rw-r--r-- | sys/ia64/include/vmparam.h | 28 |
2 files changed, 31 insertions, 1 deletions
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) |