svn commit: r342710 - in stable/12/sys/i386: i386 include

Konstantin Belousov kib at FreeBSD.org
Thu Jan 3 00:36:35 UTC 2019


Author: kib
Date: Thu Jan  3 00:36:33 2019
New Revision: 342710
URL: https://svnweb.freebsd.org/changeset/base/342710

Log:
  MFC r342653, r342654:
  Update comments: paging is initialized in pmap_cold().

Modified:
  stable/12/sys/i386/i386/pmap.c
  stable/12/sys/i386/include/pmap.h
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/i386/i386/pmap.c
==============================================================================
--- stable/12/sys/i386/i386/pmap.c	Wed Jan  2 23:57:37 2019	(r342709)
+++ stable/12/sys/i386/i386/pmap.c	Thu Jan  3 00:36:33 2019	(r342710)
@@ -569,9 +569,9 @@ pmap_cold(void)
 /*
  *	Bootstrap the system enough to run with virtual memory.
  *
- *	On the i386 this is called after mapping has already been enabled
- *	in locore.s with the page table created in pmap_cold(),
- *	and just syncs the pmap module with what has already been done.
+ *	On the i386 this is called after pmap_cold() created intial
+ *	kernel page table and enabled paging, and just syncs the pmap
+ *	module with what has already been done.
  */
 void
 pmap_bootstrap(vm_paddr_t firstaddr)
@@ -594,11 +594,12 @@ pmap_bootstrap(vm_paddr_t firstaddr)
 	vm_phys_add_seg(KPTphys, KPTphys + ptoa(nkpt));
 
 	/*
-	 * Initialize the first available kernel virtual address.  However,
-	 * using "firstaddr" may waste a few pages of the kernel virtual
-	 * address space, because locore may not have mapped every physical
-	 * page that it allocated.  Preferably, locore would provide a first
-	 * unused virtual address in addition to "firstaddr".
+	 * Initialize the first available kernel virtual address.
+	 * However, using "firstaddr" may waste a few pages of the
+	 * kernel virtual address space, because pmap_cold() may not
+	 * have mapped every physical page that it allocated.
+	 * Preferably, pmap_cold() would provide a first unused
+	 * virtual address in addition to "firstaddr".
 	 */
 	virtual_avail = (vm_offset_t)firstaddr;
 	virtual_end = VM_MAX_KERNEL_ADDRESS;
@@ -665,7 +666,7 @@ pmap_bootstrap(vm_paddr_t firstaddr)
 	/*
 	 * KPTmap is used by pmap_kextract().
 	 *
-	 * KPTmap is first initialized by locore.  However, that initial
+	 * KPTmap is first initialized by pmap_cold().  However, that initial
 	 * KPTmap can only support NKPT page table pages.  Here, a larger
 	 * KPTmap is created that can support KVA_PAGES page table pages.
 	 */

Modified: stable/12/sys/i386/include/pmap.h
==============================================================================
--- stable/12/sys/i386/include/pmap.h	Wed Jan  2 23:57:37 2019	(r342709)
+++ stable/12/sys/i386/include/pmap.h	Thu Jan  3 00:36:33 2019	(r342710)
@@ -125,7 +125,7 @@
 
 /*
  * The initial number of kernel page table pages that are constructed
- * by locore must be sufficient to map vm_page_array.  That number can
+ * by pmap_cold() must be sufficient to map vm_page_array[].  That number can
  * be calculated as follows:
  *     max_phys / PAGE_SIZE * sizeof(struct vm_page) / NBPDR
  * PAE:      max_phys 16G, sizeof(vm_page) 76, NBPDR 2M, 152 page table pages.
@@ -228,7 +228,7 @@ extern pd_entry_t *IdlePTD;	/* physical address of "Id
  * a kernel page table page after the corresponding virtual addresses have
  * been promoted to a 2/4MB page mapping.
  *
- * KPTmap is first initialized by locore to support just NPKT page table
+ * KPTmap is first initialized by pmap_cold() to support just NPKT page table
  * pages.  Later, it is reinitialized by pmap_bootstrap() to allow for
  * expansion of the kernel page table.
  */


More information about the svn-src-all mailing list