Bring default logic to set nkmempages into the 21st century.
authorclaudio <claudio@openbsd.org>
Thu, 14 Dec 2023 11:58:09 +0000 (11:58 +0000)
committerclaudio <claudio@openbsd.org>
Thu, 14 Dec 2023 11:58:09 +0000 (11:58 +0000)
commitca803f33a3107b49c2f500d66d23348002892cfb
tree7aa58f97adecfd16b73426de68db876412aa4244
parent4bba3f27890e5efeb690080d35ccec6061872dcf
Bring default logic to set nkmempages into the 21st century.

The new logic is:
Up to 1G physmem use physical memory / 4,
above 1G add an extra 16MB per 1G of memory.

Clamp it down depending on available kernel virtual address space
 - up and including 512M -> 64MB (macppc, arm, sh)
 - between 512M and 1024M -> 128MB (hppa, i386, mips, luna88k)
 - over 1024M clamping to VM_KERNEL_SPACE_SIZE / 4

The result is much more malloc(9) space on 64bit archs with lots of memory
and large kva space.
Note: amd64 only has 4G of kva and therefor nkmempages is limited to 262144

As a side-effect NKMEMPAGES_MAX and nkmempages_max are no longer used.
Tested and OK miod@
sys/kern/kern_malloc.c