We need to be careful to not promote or demote the address space
containing the per-CPU structures as the exception handlers will
dereference it so any time it's invalid may cause recursive exceptions.
To allow for the per-CPU memory to be allocated in the appropriate
domain use kmem_alloc_contig_domainset with a size and alignment
of the level 2 block. This will ensure the kernel will allocate the
full level 2 block, so won't promote after allocation.
Reported by: dch
Sponsored by: The FreeBSD Foundation