svn commit: r363060 - in head: stand/defaults sys/amd64/amd64 sys/powerpc/aim sys/vm
Oliver Pinter
oliver.pntr at gmail.com
Thu Jul 9 22:54:18 UTC 2020
On Friday, July 10, 2020, Scott Long <scottl at freebsd.org> wrote:
> Author: scottl
> Date: Thu Jul 9 22:38:36 2020
> New Revision: 363060
> URL: https://svnweb.freebsd.org/changeset/base/363060
>
> Log:
> Revert r362998, r326999 while a better compatibility strategy is devised.
>
> 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 Thu Jul 9 20:55:18 2020
> (r363059)
> +++ head/stand/defaults/loader.conf Thu Jul 9 22:38:36 2020
> (r363060)
> @@ -53,7 +53,7 @@ entropy_cache_type="boot_entropy_cache" #
> Required for
> ram_excludelist_load="NO" # Set this to YES to load a file
> # containing a list of addresses to
> # exclude from the running system.
> -ram_excludelist_name="/boot/excludelist.txt" # Set this to the name of
> the file
> +ram_excludeist_name="/boot/excludelist.txt" # Set this to the name of
> the file
Hi!
This part of the revert seems still broken.
> ram_excludelist_type="ram_excludelist" # Required for the kernel to find
> # the blacklist module
>
>
> Modified: head/sys/amd64/amd64/pmap.c
> ============================================================
> ==================
> --- head/sys/amd64/amd64/pmap.c Thu Jul 9 20:55:18 2020 (r363059)
> +++ head/sys/amd64/amd64/pmap.c Thu Jul 9 22:38:36 2020 (r363060)
> @@ -2060,7 +2060,7 @@ pmap_init(void)
> int error, i, ret, skz63;
>
> /* L1TF, reserve page @0 unconditionally */
> - vm_page_excludelist_add(0, bootverbose);
> + vm_page_blacklist_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_excludelist_add(0x40000000 +
> + ret = vm_page_blacklist_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 Thu Jul 9 20:55:18 2020
> (r363059)
> +++ head/sys/powerpc/aim/mmu_radix.c Thu Jul 9 22:38:36 2020
> (r363060)
> @@ -3557,7 +3557,7 @@ mmu_radix_init()
> int error, i, pv_npg;
>
> /* L1TF, reserve page @0 unconditionally */
> - vm_page_excludelist_add(0, bootverbose);
> + vm_page_blacklist_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 Thu Jul 9 20:55:18 2020 (r363059)
> +++ head/sys/vm/vm_page.c Thu Jul 9 22:38:36 2020 (r363060)
> @@ -155,11 +155,10 @@ vm_page_t vm_page_array;
> long vm_page_array_size;
> long first_page;
>
> -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 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 uma_zone_t fakepg_zone;
>
> @@ -259,16 +258,16 @@ vm_set_page_size(void)
> }
>
> /*
> - * vm_page_excludelist_next:
> + * vm_page_blacklist_next:
> *
> - * Find the next entry in the provided string of excludelist
> + * Find the next entry in the provided string of blacklist
> * 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_excludelist_next(char **list, char *end)
> +vm_page_blacklist_next(char **list, char *end)
> {
> vm_paddr_t bad;
> char *cp, *pos;
> @@ -315,13 +314,13 @@ vm_page_excludelist_next(char **list, char *end)
> *list = cp;
> return (trunc_page(bad));
> }
> - printf("Garbage in RAM excludelist, skipping\n");
> + printf("Garbage in RAM blacklist, skipping\n");
> *list = NULL;
> return (0);
> }
>
> bool
> -vm_page_excludelist_add(vm_paddr_t pa, bool verbose)
> +vm_page_blacklist_add(vm_paddr_t pa, bool verbose)
> {
> struct vm_domain *vmd;
> vm_page_t m;
> @@ -337,7 +336,7 @@ vm_page_excludelist_add(vm_paddr_t pa, bool verbose)
> vm_domain_free_unlock(vmd);
> if (ret != 0) {
> vm_domain_freecnt_inc(vmd, -1);
> - TAILQ_INSERT_TAIL(&excludelist_head, m, listq);
> + TAILQ_INSERT_TAIL(&blacklist_head, m, listq);
> if (verbose)
> printf("Skipping page with pa 0x%jx\n",
> (uintmax_t)pa);
> }
> @@ -345,35 +344,35 @@ vm_page_excludelist_add(vm_paddr_t pa, bool verbose)
> }
>
> /*
> - * vm_page_excludelist_check:
> + * vm_page_blacklist_check:
> *
> - * Iterate through the provided string of excludelist addresses,
> pulling
> + * Iterate through the provided string of blacklist addresses, pulling
> * each entry out of the physical allocator free list and putting it
> - * onto a list for reporting via the vm.page_excludelist sysctl.
> + * onto a list for reporting via the vm.page_blacklist sysctl.
> */
> static void
> -vm_page_excludelist_check(char *list, char *end)
> +vm_page_blacklist_check(char *list, char *end)
> {
> vm_paddr_t pa;
> char *next;
>
> next = list;
> while (next != NULL) {
> - if ((pa = vm_page_excludelist_next(&next, end)) == 0)
> + if ((pa = vm_page_blacklist_next(&next, end)) == 0)
> continue;
> - vm_page_excludelist_add(pa, bootverbose);
> + vm_page_blacklist_add(pa, bootverbose);
> }
> }
>
> /*
> - * vm_page_excludelist_load:
> + * vm_page_blacklist_load:
> *
> - * Search for a special module named "ram_excludelist". It'll be a
> + * Search for a special module named "ram_blacklist". It'll be a
> * plain text file provided by the user via the loader directive
> * of the same name.
> */
> static void
> -vm_page_excludelist_load(char **list, char **end)
> +vm_page_blacklist_load(char **list, char **end)
> {
> void *mod;
> u_char *ptr;
> @@ -382,7 +381,7 @@ vm_page_excludelist_load(char **list, char **end)
> mod = NULL;
> ptr = NULL;
>
> - mod = preload_search_by_type("ram_excludelist");
> + mod = preload_search_by_type("ram_blacklist");
> if (mod != NULL) {
> ptr = preload_fetch_addr(mod);
> len = preload_fetch_size(mod);
> @@ -396,7 +395,7 @@ vm_page_excludelist_load(char **list, char **end)
> }
>
> static int
> -sysctl_vm_page_excludelist(SYSCTL_HANDLER_ARGS)
> +sysctl_vm_page_blacklist(SYSCTL_HANDLER_ARGS)
> {
> vm_page_t m;
> struct sbuf sbuf;
> @@ -407,7 +406,7 @@ sysctl_vm_page_excludelist(SYSCTL_HANDLER_ARGS)
> if (error != 0)
> return (error);
> sbuf_new_for_sysctl(&sbuf, NULL, 128, req);
> - TAILQ_FOREACH(m, &excludelist_head, listq) {
> + TAILQ_FOREACH(m, &blacklist_head, listq) {
> sbuf_printf(&sbuf, "%s%#jx", first ? "" : ",",
> (uintmax_t)m->phys_addr);
> first = 0;
> @@ -794,14 +793,14 @@ vm_page_startup(vm_offset_t vaddr)
> }
>
> /*
> - * Remove excludelisted pages from the physical memory allocator.
> + * Remove blacklisted pages from the physical memory allocator.
> */
> - TAILQ_INIT(&excludelist_head);
> - vm_page_excludelist_load(&list, &listend);
> - vm_page_excludelist_check(list, listend);
> + TAILQ_INIT(&blacklist_head);
> + vm_page_blacklist_load(&list, &listend);
> + vm_page_blacklist_check(list, listend);
>
> - list = kern_getenv("vm.excludelist");
> - vm_page_excludelist_check(list, NULL);
> + list = kern_getenv("vm.blacklist");
> + vm_page_blacklist_check(list, NULL);
>
> freeenv(list);
> #if VM_NRESERVLEVEL > 0
>
> Modified: head/sys/vm/vm_page.h
> ============================================================
> ==================
> --- head/sys/vm/vm_page.h Thu Jul 9 20:55:18 2020 (r363059)
> +++ head/sys/vm/vm_page.h Thu Jul 9 22:38:36 2020 (r363060)
> @@ -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_excludelist_add(vm_paddr_t pa, bool verbose);
> +bool vm_page_blacklist_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,
> _______________________________________________
> svn-src-head at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
>
More information about the svn-src-all
mailing list