Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Feb 2019 20:09:32 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r343809 - head/sys/i386/i386
Message-ID:  <201902052009.x15K9W5f011076@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Tue Feb  5 20:09:31 2019
New Revision: 343809
URL: https://svnweb.freebsd.org/changeset/base/343809

Log:
  Make it possible to override PAE mode on boot.
  
  Initialize the static kenv in pmap_cold() and fetch user opinion on
  vm.pmap.pae_mode tunable if hardware is capable.  Note that the static
  environment is reinitilized in init386() later when paging is enabled.
  
  Reviewed by:	bde
  Discussed with:	kevans
  Sponsored by:	The FreeBSD Foundation
  MFC after:	2 months

Modified:
  head/sys/i386/i386/pmap_base.c

Modified: head/sys/i386/i386/pmap_base.c
==============================================================================
--- head/sys/i386/i386/pmap_base.c	Tue Feb  5 20:02:16 2019	(r343808)
+++ head/sys/i386/i386/pmap_base.c	Tue Feb  5 20:09:31 2019	(r343809)
@@ -96,6 +96,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/kernel.h>
 #include <sys/vmmeter.h>
 #include <sys/sysctl.h>
+#include <machine/bootinfo.h>
 #include <machine/cpu.h>
 #include <machine/cputypes.h>
 #include <machine/md_var.h>
@@ -935,16 +936,19 @@ pmap_kremove(vm_offset_t va)
 
 extern struct pmap_methods pmap_pae_methods, pmap_nopae_methods;
 int pae_mode;
-SYSCTL_INT(_vm_pmap, OID_AUTO, pae_mode, CTLFLAG_RD,
-    &pae_mode, 1,
+SYSCTL_INT(_vm_pmap, OID_AUTO, pae_mode, CTLFLAG_RDTUN | CTLFLAG_NOFETCH,
+    &pae_mode, 0,
     "PAE");
 
 void
 pmap_cold(void)
 {
 
-	if ((cpu_feature & CPUID_PAE) != 0) {
-		pae_mode = 1;
+	init_static_kenv((char *)bootinfo.bi_envp, 0);
+	pae_mode = (cpu_feature & CPUID_PAE) != 0;
+	if (pae_mode)
+		TUNABLE_INT_FETCH("vm.pmap.pae_mode", &pae_mode);
+	if (pae_mode) {
 		pmap_methods_ptr = &pmap_pae_methods;
 		pmap_pae_cold();
 	} else {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201902052009.x15K9W5f011076>