Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Jul 2020 20:33:12 +0000 (UTC)
From:      Scott Long <scottl@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r362998 - in head: stand/defaults sys/amd64/amd64 sys/powerpc/aim sys/vm
Message-ID:  <202007072033.067KXC9V029714@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: scottl
Date: Tue Jul  7 20:33:11 2020
New Revision: 362998
URL: https://svnweb.freebsd.org/changeset/base/362998

Log:
  Migrate the feature of excluding RAM pages to use "excludelist"
  as its nomenclature.
  
  MFC after:	1 week

Modified:
  head/stand/defaults/loader.conf
  head/sys/amd64/amd64/pmap.c
  head/sys/powerpc/aim/mmu_radix.c
  head/sys/vm/vm_page.c
  head/sys/vm/vm_page.h

Modified: head/stand/defaults/loader.conf
==============================================================================
--- head/stand/defaults/loader.conf	Tue Jul  7 19:09:38 2020	(r362997)
+++ head/stand/defaults/loader.conf	Tue Jul  7 20:33:11 2020	(r362998)
@@ -49,12 +49,12 @@ entropy_cache_type="boot_entropy_cache"	# Required for
 					# must not change value even if the
 					# _name above does change!
 
-###  RAM Blacklist configuration  ############################
-ram_blacklist_load="NO"			# Set this to YES to load a file
+###  RAM Excludelist configuration  ############################
+ram_excludelist_load="NO"		# Set this to YES to load a file
 					# containing a list of addresses to
 					# exclude from the running system.
-ram_blacklist_name="/boot/blacklist.txt" # Set this to the name of the file
-ram_blacklist_type="ram_blacklist"	# Required for the kernel to find
+ram_excludeist_name="/boot/excludelist.txt" # Set this to the name of the file
+ram_excludelist_type="ram_excludelist"	# Required for the kernel to find
 					# the blacklist module
 
 ###  Microcode loading configuration  ########################

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c	Tue Jul  7 19:09:38 2020	(r362997)
+++ head/sys/amd64/amd64/pmap.c	Tue Jul  7 20:33:11 2020	(r362998)
@@ -2060,7 +2060,7 @@ pmap_init(void)
 	int error, i, ret, skz63;
 
 	/* L1TF, reserve page @0 unconditionally */
-	vm_page_blacklist_add(0, bootverbose);
+	vm_page_excludelist_add(0, bootverbose);
 
 	/* Detect bare-metal Skylake Server and Skylake-X. */
 	if (vm_guest == VM_GUEST_NO && cpu_vendor_id == CPU_VENDOR_INTEL &&
@@ -2081,7 +2081,7 @@ pmap_init(void)
 				printf("SKZ63: skipping 4M RAM starting "
 				    "at physical 1G\n");
 			for (i = 0; i < atop(0x400000); i++) {
-				ret = vm_page_blacklist_add(0x40000000 +
+				ret = vm_page_excludelist_add(0x40000000 +
 				    ptoa(i), FALSE);
 				if (!ret && bootverbose)
 					printf("page at %#lx already used\n",

Modified: head/sys/powerpc/aim/mmu_radix.c
==============================================================================
--- head/sys/powerpc/aim/mmu_radix.c	Tue Jul  7 19:09:38 2020	(r362997)
+++ head/sys/powerpc/aim/mmu_radix.c	Tue Jul  7 20:33:11 2020	(r362998)
@@ -3557,7 +3557,7 @@ mmu_radix_init()
 	int error, i, pv_npg;
 
 	/* L1TF, reserve page @0 unconditionally */
-	vm_page_blacklist_add(0, bootverbose);
+	vm_page_excludelist_add(0, bootverbose);
 
 	zone_radix_pgd = uma_zcache_create("radix_pgd_cache",
 		RADIX_PGD_SIZE, NULL, NULL,

Modified: head/sys/vm/vm_page.c
==============================================================================
--- head/sys/vm/vm_page.c	Tue Jul  7 19:09:38 2020	(r362997)
+++ head/sys/vm/vm_page.c	Tue Jul  7 20:33:11 2020	(r362998)
@@ -155,10 +155,11 @@ vm_page_t vm_page_array;
 long vm_page_array_size;
 long first_page;
 
-static TAILQ_HEAD(, vm_page) blacklist_head;
-static int sysctl_vm_page_blacklist(SYSCTL_HANDLER_ARGS);
-SYSCTL_PROC(_vm, OID_AUTO, page_blacklist, CTLTYPE_STRING | CTLFLAG_RD |
-    CTLFLAG_MPSAFE, NULL, 0, sysctl_vm_page_blacklist, "A", "Blacklist pages");
+static TAILQ_HEAD(, vm_page) excludelist_head;
+static int sysctl_vm_page_excludelist(SYSCTL_HANDLER_ARGS);
+SYSCTL_PROC(_vm, OID_AUTO, page_excludelist, CTLTYPE_STRING | CTLFLAG_RD |
+    CTLFLAG_MPSAFE, NULL, 0, sysctl_vm_page_excludelist, "A",
+    "Blacklist pages");
 
 static uma_zone_t fakepg_zone;
 
@@ -258,16 +259,16 @@ vm_set_page_size(void)
 }
 
 /*
- *	vm_page_blacklist_next:
+ *	vm_page_excludelist_next:
  *
- *	Find the next entry in the provided string of blacklist
+ *	Find the next entry in the provided string of excludelist
  *	addresses.  Entries are separated by space, comma, or newline.
  *	If an invalid integer is encountered then the rest of the
  *	string is skipped.  Updates the list pointer to the next
  *	character, or NULL if the string is exhausted or invalid.
  */
 static vm_paddr_t
-vm_page_blacklist_next(char **list, char *end)
+vm_page_excludelist_next(char **list, char *end)
 {
 	vm_paddr_t bad;
 	char *cp, *pos;
@@ -314,13 +315,13 @@ vm_page_blacklist_next(char **list, char *end)
 			*list = cp;
 		return (trunc_page(bad));
 	}
-	printf("Garbage in RAM blacklist, skipping\n");
+	printf("Garbage in RAM excludelist, skipping\n");
 	*list = NULL;
 	return (0);
 }
 
 bool
-vm_page_blacklist_add(vm_paddr_t pa, bool verbose)
+vm_page_excludelist_add(vm_paddr_t pa, bool verbose)
 {
 	struct vm_domain *vmd;
 	vm_page_t m;
@@ -336,7 +337,7 @@ vm_page_blacklist_add(vm_paddr_t pa, bool verbose)
 	vm_domain_free_unlock(vmd);
 	if (ret != 0) {
 		vm_domain_freecnt_inc(vmd, -1);
-		TAILQ_INSERT_TAIL(&blacklist_head, m, listq);
+		TAILQ_INSERT_TAIL(&excludelist_head, m, listq);
 		if (verbose)
 			printf("Skipping page with pa 0x%jx\n", (uintmax_t)pa);
 	}
@@ -344,35 +345,35 @@ vm_page_blacklist_add(vm_paddr_t pa, bool verbose)
 }
 
 /*
- *	vm_page_blacklist_check:
+ *	vm_page_excludelist_check:
  *
- *	Iterate through the provided string of blacklist addresses, pulling
+ *	Iterate through the provided string of excludelist addresses, pulling
  *	each entry out of the physical allocator free list and putting it
- *	onto a list for reporting via the vm.page_blacklist sysctl.
+ *	onto a list for reporting via the vm.page_excludelist sysctl.
  */
 static void
-vm_page_blacklist_check(char *list, char *end)
+vm_page_excludelist_check(char *list, char *end)
 {
 	vm_paddr_t pa;
 	char *next;
 
 	next = list;
 	while (next != NULL) {
-		if ((pa = vm_page_blacklist_next(&next, end)) == 0)
+		if ((pa = vm_page_excludelist_next(&next, end)) == 0)
 			continue;
-		vm_page_blacklist_add(pa, bootverbose);
+		vm_page_excludelist_add(pa, bootverbose);
 	}
 }
 
 /*
- *	vm_page_blacklist_load:
+ *	vm_page_excludelist_load:
  *
- *	Search for a special module named "ram_blacklist".  It'll be a
+ *	Search for a special module named "ram_excludelist".  It'll be a
  *	plain text file provided by the user via the loader directive
  *	of the same name.
  */
 static void
-vm_page_blacklist_load(char **list, char **end)
+vm_page_excludelist_load(char **list, char **end)
 {
 	void *mod;
 	u_char *ptr;
@@ -381,7 +382,7 @@ vm_page_blacklist_load(char **list, char **end)
 	mod = NULL;
 	ptr = NULL;
 
-	mod = preload_search_by_type("ram_blacklist");
+	mod = preload_search_by_type("ram_excludelist");
 	if (mod != NULL) {
 		ptr = preload_fetch_addr(mod);
 		len = preload_fetch_size(mod);
@@ -395,7 +396,7 @@ vm_page_blacklist_load(char **list, char **end)
 }
 
 static int
-sysctl_vm_page_blacklist(SYSCTL_HANDLER_ARGS)
+sysctl_vm_page_excludelist(SYSCTL_HANDLER_ARGS)
 {
 	vm_page_t m;
 	struct sbuf sbuf;
@@ -406,7 +407,7 @@ sysctl_vm_page_blacklist(SYSCTL_HANDLER_ARGS)
 	if (error != 0)
 		return (error);
 	sbuf_new_for_sysctl(&sbuf, NULL, 128, req);
-	TAILQ_FOREACH(m, &blacklist_head, listq) {
+	TAILQ_FOREACH(m, &excludelist_head, listq) {
 		sbuf_printf(&sbuf, "%s%#jx", first ? "" : ",",
 		    (uintmax_t)m->phys_addr);
 		first = 0;
@@ -793,14 +794,14 @@ vm_page_startup(vm_offset_t vaddr)
 	}
 
 	/*
-	 * Remove blacklisted pages from the physical memory allocator.
+	 * Remove excludelisted pages from the physical memory allocator.
 	 */
-	TAILQ_INIT(&blacklist_head);
-	vm_page_blacklist_load(&list, &listend);
-	vm_page_blacklist_check(list, listend);
+	TAILQ_INIT(&excludelist_head);
+	vm_page_excludelist_load(&list, &listend);
+	vm_page_excludelist_check(list, listend);
 
-	list = kern_getenv("vm.blacklist");
-	vm_page_blacklist_check(list, NULL);
+	list = kern_getenv("vm.excludelist");
+	vm_page_excludelist_check(list, NULL);
 
 	freeenv(list);
 #if VM_NRESERVLEVEL > 0

Modified: head/sys/vm/vm_page.h
==============================================================================
--- head/sys/vm/vm_page.h	Tue Jul  7 19:09:38 2020	(r362997)
+++ head/sys/vm/vm_page.h	Tue Jul  7 20:33:11 2020	(r362998)
@@ -613,7 +613,7 @@ vm_page_t vm_page_alloc_contig_domain(vm_object_t obje
 vm_page_t vm_page_alloc_freelist(int, int);
 vm_page_t vm_page_alloc_freelist_domain(int, int, int);
 void vm_page_bits_set(vm_page_t m, vm_page_bits_t *bits, vm_page_bits_t set);
-bool vm_page_blacklist_add(vm_paddr_t pa, bool verbose);
+bool vm_page_excludelist_add(vm_paddr_t pa, bool verbose);
 vm_page_t vm_page_grab(vm_object_t, vm_pindex_t, int);
 vm_page_t vm_page_grab_unlocked(vm_object_t, vm_pindex_t, int);
 int vm_page_grab_pages(vm_object_t object, vm_pindex_t pindex, int allocflags,



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