svn commit: r336020 - in head/sys: amd64/include arm/include arm64/include i386/include kern mips/include powerpc/include riscv/include sparc64/include sys vm x86/acpica

John Baldwin jhb at FreeBSD.org
Fri Jul 6 21:32:23 UTC 2018


On 7/5/18 7:06 PM, Matt Macy wrote:
> Author: mmacy
> Date: Fri Jul  6 02:06:03 2018
> New Revision: 336020
> URL: https://svnweb.freebsd.org/changeset/base/336020
> 
> Log:
>   Back pcpu zone with domain correct pages
>   
>   - Change pcpu zone consumers to use a stride size of PAGE_SIZE.
>     (defined as UMA_PCPU_ALLOC_SIZE to make future identification easier)
>   
>   - Allocate page from the correct domain for a given cpu.
>   
>   - Don't initialize pc_domain to non-zero value if NUMA is not defined
>     There are some misconceptions surrounding this field. It is the
>     _VM_ NUMA domain and should only ever correspond to valid domain
>     values as understood by the VM.
>   
>   The former slab size of sizeof(struct pcpu) was somewhat arbitrary.
>   The new value is PAGE_SIZE because that's the smallest granularity
>   which the VM can allocate a slab for a given domain. If you have
>   fewer than PAGE_SIZE/8 counters on your system there will be some
>   memory wasted, but this is obviously something where you want the
>   cache line to be coming from the correct domain.
>   
>   Reviewed by: jeff
>   Sponsored by: Limelight Networks
>   Differential Revision:  https://reviews.freebsd.org/D15933

So one thing about this change that confused me abit is why any of srat.c
is being run at all in a non-NUMA kernel.  When we reworked the NUMA options
in HEAD to merge DEVICE_NUMA and VM_NUMA_ALLOC or whatever it was called
into a single NUMA, my impression is that srat.c should be 'optional numa'
in sys/conf/files.*.  Is it just oversight that that wasn't done earlier,
and should we in fact do that now?

-- 
John Baldwin


More information about the svn-src-all mailing list