I initially overlooked the timing of the vindexsize update. Thanks Jared for pointing that out.
Alternatively, other ports use uvm_page_recolor(9) when secondary
CPUs are attached:
https://nxr.netbsd.org/source/s?refs=uvm_page_recolor&project=src
For aarch64, something like the attached patch makes sense? (Sorry,
compile-test only since I don't have big.LITTLE processors...)
I've tested it and it seems to be fine.
I tried to force recolor on BigCluster by returning a dummy (larger) vindexsize,
but it seemed to work.
One more point.
if (uvm.page_init_done)
uvm_page_recolor(vindexsize / PAGE_SIZE);
It may be better to use.