Page MenuHomeFreeBSD

D42737.id136170.diff
No OneTemporary

D42737.id136170.diff

diff --git a/sys/arm64/arm64/copyinout.S b/sys/arm64/arm64/copyinout.S
--- a/sys/arm64/arm64/copyinout.S
+++ b/sys/arm64/arm64/copyinout.S
@@ -30,6 +30,7 @@
#include <machine/asm.h>
#include <sys/errno.h>
+#include <machine/param.h>
#include <machine/vmparam.h>
#include "assym.inc"
diff --git a/sys/arm64/include/vmparam.h b/sys/arm64/include/vmparam.h
--- a/sys/arm64/include/vmparam.h
+++ b/sys/arm64/include/vmparam.h
@@ -99,8 +99,17 @@
* are used by UMA, the physical memory allocator reduces the likelihood of
* both 2MB page TLB misses and cache misses during the page table walk when
* a 2MB page TLB miss does occur.
+ *
+ * When PAGE_SIZE is 16KB, an allocation size of 32MB is supported. This
+ * size is used by level 0 reservations and L2 BLOCK mappings.
*/
+#if PAGE_SIZE == PAGE_SIZE_4K
#define VM_NFREEORDER 13
+#elif PAGE_SIZE == PAGE_SIZE_16K
+#define VM_NFREEORDER 12
+#else
+#error Unsupported page size
+#endif
/*
* Enable superpage reservations: 1 level.
@@ -110,10 +119,17 @@
#endif
/*
- * Level 0 reservations consist of 512 pages.
+ * Level 0 reservations consist of 512 pages when PAGE_SIZE is 4KB, and
+ * 2048 pages when PAGE_SIZE is 16KB.
*/
#ifndef VM_LEVEL_0_ORDER
+#if PAGE_SIZE == PAGE_SIZE_4K
#define VM_LEVEL_0_ORDER 9
+#elif PAGE_SIZE == PAGE_SIZE_16K
+#define VM_LEVEL_0_ORDER 11
+#else
+#error Unsupported page size
+#endif
#endif
/**

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 9, 2:27 AM (40 m, 17 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28526333
Default Alt Text
D42737.id136170.diff (1 KB)

Event Timeline