panic: UMA: Increase vm.boot_pages with 32 CPUs

Jeff Roberson jroberson at jroberson.net
Wed Aug 14 04:43:43 UTC 2013


On Tue, 13 Aug 2013, Jim Harris wrote:

> 
> 
> 
> On Tue, Aug 13, 2013 at 3:05 PM, Jeff Roberson <jroberson at jroberson.net>
> wrote:
>       On Mon, 12 Aug 2013, Colin Percival wrote:
>
>             Hi all,
>
>             A HEAD at 254238 kernel fails to boot in EC2 with
>                   panic: UMA: Increase vm.boot_pages
>
>             on 32-CPU instances.  Instances with up to 16 CPUs
>             boot fine.
>
>             I know there has been some mucking about with VM
>             recently -- anyone want
>             to claim this, or should I start doing a binary
>             search?
> 
> 
> It's not any one commit really, just creeping demand for more pages
> before the VM can get started.  I would suggest making boot pages
> scale with MAXCPU.  Or just raising it as the panic suggests.  We
> could rewrite the way that the vm gets these early pages but it's a
> lot of work and typically people just bump it and forget about it.
> 
> 
> I ran into this problem today when enabling hyperthreading on my dual-socket
> Xeon E5 system.
> 
> It looks like r254025 is actually the culprit.  Specifically, the new
> mallocinit()/kmeminit() now invoke the new vmem_init() before
> uma_startup2(), which allocates 16 zones out of the boot pages if I am
> reading this correctly.  This is all done before uma_startup2() is called,
> triggering the panic.
>

I just disabled the quantum caches in vmem which allocate those 16 zones. 
This may alleviate the problem for now.

Thanks,
Jeff

> Anything less than 28 CPUs, and the zone size (uma_zone + uma_cache *
> (mp_maxid + 1)) is <= PAGE_SIZE and we can successfully boot.  So at 32
> CPUs, we need two boot pages per zone which consumes more than the default
> 64 boot pages.  The size of these structures do not appear to have
> materially changed any time recently.
> 
> Scaling with MAXCPU seems to be an OK solution, but should it be based
> directly on the size of (uma_zone + uma_cache * MAXCPU)?  I am not very
> familiar with uma startup, but it seems like these zones are the primary
> consumers of the boot pages, so the UMA_BOOT_PAGES default should be based
> directly on that size..
> 
> Regards,
> 
> -Jim
> 
> 
>


More information about the freebsd-current mailing list