Page MenuHomeFreeBSD

D27156.diff
No OneTemporary

D27156.diff

Index: head/sys/powerpc/aim/mmu_oea64.c
===================================================================
--- head/sys/powerpc/aim/mmu_oea64.c
+++ head/sys/powerpc/aim/mmu_oea64.c
@@ -319,13 +319,8 @@
/* MD page flag indicating that the page is a superpage. */
#define MDPG_ATTR_SP 0x40000000
-static SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0,
- "VM/pmap parameters");
+SYSCTL_DECL(_vm_pmap);
-static int superpages_enabled = 0;
-SYSCTL_INT(_vm_pmap, OID_AUTO, superpages_enabled, CTLFLAG_RDTUN,
- &superpages_enabled, 0, "Enable support for transparent superpages");
-
static SYSCTL_NODE(_vm_pmap, OID_AUTO, sp, CTLFLAG_RD, 0,
"SP page mapping counters");
@@ -1968,7 +1963,11 @@
/*
* Are large page mappings enabled?
+ *
+ * While HPT superpages are not better tested, leave it disabled by
+ * default.
*/
+ superpages_enabled = 0;
TUNABLE_INT_FETCH("vm.pmap.superpages_enabled", &superpages_enabled);
if (superpages_enabled) {
KASSERT(MAXPAGESIZES > 1 && pagesizes[1] == 0,
Index: head/sys/powerpc/aim/mmu_radix.c
===================================================================
--- head/sys/powerpc/aim/mmu_radix.c
+++ head/sys/powerpc/aim/mmu_radix.c
@@ -385,11 +385,8 @@
vm_paddr_t dmaplimit;
-SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters");
+SYSCTL_DECL(_vm_pmap);
-static int pg_ps_enabled = 1;
-SYSCTL_INT(_vm_pmap, OID_AUTO, pg_ps_enabled, CTLFLAG_RDTUN | CTLFLAG_NOFETCH,
- &pg_ps_enabled, 0, "Are large page mappings enabled?");
#ifdef INVARIANTS
#define VERBOSE_PMAP 0
#define VERBOSE_PROTECT 0
@@ -904,7 +901,7 @@
bool
mmu_radix_ps_enabled(pmap_t pmap)
{
- return (pg_ps_enabled && (pmap->pm_flags & PMAP_PDE_SUPERPAGE) != 0);
+ return (superpages_enabled && (pmap->pm_flags & PMAP_PDE_SUPERPAGE) != 0);
}
static pt_entry_t *
@@ -3609,8 +3606,8 @@
/*
* Are large page mappings enabled?
*/
- TUNABLE_INT_FETCH("vm.pmap.pg_ps_enabled", &pg_ps_enabled);
- if (pg_ps_enabled) {
+ TUNABLE_INT_FETCH("vm.pmap.superpages_enabled", &superpages_enabled);
+ if (superpages_enabled) {
KASSERT(MAXPAGESIZES > 1 && pagesizes[1] == 0,
("pmap_init: can't assign to pagesizes[1]"));
pagesizes[1] = L3_PAGE_SIZE;
Index: head/sys/powerpc/include/pmap.h
===================================================================
--- head/sys/powerpc/include/pmap.h
+++ head/sys/powerpc/include/pmap.h
@@ -336,6 +336,7 @@
extern int pmap_bootstrapped;
extern int radix_mmu;
+extern int superpages_enabled;
vm_offset_t pmap_early_io_map(vm_paddr_t pa, vm_size_t size);
void pmap_early_io_unmap(vm_offset_t va, vm_size_t size);
Index: head/sys/powerpc/powerpc/pmap_dispatch.c
===================================================================
--- head/sys/powerpc/powerpc/pmap_dispatch.c
+++ head/sys/powerpc/powerpc/pmap_dispatch.c
@@ -50,6 +50,7 @@
#include <sys/kerneldump.h>
#include <sys/ktr.h>
#include <sys/mutex.h>
+#include <sys/sysctl.h>
#include <sys/systm.h>
#include <vm/vm.h>
@@ -79,6 +80,12 @@
int pmap_bootstrapped;
/* Default level 0 reservations consist of 512 pages (2MB superpage). */
int vm_level_0_order = 9;
+
+SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters");
+
+int superpages_enabled = 0;
+SYSCTL_INT(_vm_pmap, OID_AUTO, superpages_enabled, CTLFLAG_RDTUN,
+ &superpages_enabled, 0, "Enable support for transparent superpages");
#ifdef AIM
int

File Metadata

Mime Type
text/plain
Expires
Mon, Jul 6, 1:51 AM (13 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34731872
Default Alt Text
D27156.diff (3 KB)

Event Timeline