summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2007-06-10 23:39:07 +0000
committeralc <alc@FreeBSD.org>2007-06-10 23:39:07 +0000
commit173b3d6d03875890b913bb771d1e5c5d73bda2be (patch)
treeaa9ddf6b2c464b20c999d825ccf49d3ec8ef6be8
parent532a6856ededcca631ce6c87024395ba4d4818be (diff)
downloadFreeBSD-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
-rw-r--r--sys/ia64/ia64/machdep.c4
-rw-r--r--sys/ia64/include/vmparam.h28
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)
OpenPOWER on IntegriCloud