Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Mar 2015 16:00:09 -0400 (EDT)
From:      Keith White <kwhite@site.uottawa.ca>
To:        Rui Paulo <rpaulo@me.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: panic: UMA: Increase vm.boot_pages on Dell R920 r279210
Message-ID:  <20150324155426.M7719@admin16.site.uottawa.ca>
In-Reply-To: <1A6D6059-21A2-467C-979D-E413623753FD@me.com>
References:  <20150319095306.C7719@admin16.site.uottawa.ca> <528B3B45-378E-44CD-A286-0269E84C4F70@me.com> <54997.66.186.85.232.1427195954.squirrel@courriel.site.uottawa.ca> <1A6D6059-21A2-467C-979D-E413623753FD@me.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 24 Mar 2015, Rui Paulo wrote:

> On Mar 24, 2015, at 04:19, kwhite@site.uottawa.ca wrote:
>>
>> I'm using /boot/loader.conf. Is there another place I should be doing this?
>
> No, that's correct, but apparently there's a problem: the RDTUN sysctl is not picked up early enough.  Can you try this patch?  I haven't really tested it. :-)
>
> diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
> index 79665ba..a764788 100644
> --- a/sys/vm/vm_page.c
> +++ b/sys/vm/vm_page.c
> @@ -134,8 +134,9 @@ long first_page;
> int vm_page_zero_count;
>
> static int boot_pages = UMA_BOOT_PAGES;
> -SYSCTL_INT(_vm, OID_AUTO, boot_pages, CTLFLAG_RDTUN, &boot_pages, 0,
> -       "number of pages allocated for bootstrapping the VM system");
> +SYSCTL_INT(_vm, OID_AUTO, boot_pages, CTLFLAG_RDTUN | CTLFLAG_NOFETCH,
> +    &boot_pages, 0,
> +    "number of pages allocated for bootstrapping the VM system");
>
> static int pa_tryrelock_restart;
> SYSCTL_INT(_vm, OID_AUTO, tryrelock_restart, CTLFLAG_RD,
> @@ -349,6 +350,7 @@ vm_page_startup(vm_offset_t vaddr)
>         * Allocate memory for use when boot strapping the kernel memory
>         * allocator.
>         */
> +       TUNABLE_INT_FETCH("vm.boot_pages", &boot_pages);
>        new_end = end - (boot_pages * UMA_SLAB_SIZE);
>        new_end = trunc_page(new_end);
>        mapped = pmap_map(&vaddr, new_end, end,
> @@ -443,7 +445,7 @@ vm_page_startup(vm_offset_t vaddr)
>
>
> --
> Rui Paulo

Patch tried.  Success!

I now get this after setting vm.boot_pages=1024 in /boot/loader.conf:

Booting...
GDB: no debug ports present
KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2015 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
         The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 11.0-CURRENT #1: Tue Mar 24 13:44:48 UTC 2015
     root@:/usr/obj/usr/src/sys/GENERIC amd64
FreeBSD clang version 3.5.1 (tags/RELEASE_351/final 225668) 20150115
WARNING: WITNESS option enabled, expect reduced performance.
UMA startup boot_pages: 1024
...

And can start all 120 processors.

Thanks!

...keith
-- 
Keith White, genie.uottawa.ca engineering.uottawa.ca
kwhite@uottawa.ca [+1 613 562 5800 x6681]



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