DragonFly bugs List (threaded) for 2003-09
Re: contigmalloc for low address in SI_SUB_KMEM
:But if this is the case, removing
: options NO_KMEM_MAP
: options USE_SLAB_ALLOCATOR
:fixes the contigmalloc(), no? When I first noticed the error message,
:I didn't have these in my kernel config file.
:> The solution is to try to figure out why that is occuring.
:I'm going to dig into FreeBSD-STABLE code and how it behaves differently
This should all be fixed now in vm/vm_page.c 1.10. Make sure you have
cleared any priority patches I posted and update your tree.
In FreeBSD we made a number of commits that had issues with
VM_ALLOC_ZERO verses not. In the last commit I made to DragonFly
I adjusted the code so both VM_ALLOC_ZERO and non-VM_ALLOC_ZERO
allocations should obtain high addresses first. The new vm_add_new_page()
and related code adds memory to the free lists from low-to-high
physical addresses, to both ends of the list, building the free page list
outwards from the center so higher addresses should be at both ends.
If it still isn't working properly for you then perhaps the phys_avail
array is not in ascending order. To find out you can add a debugging
printf() to the for() loop in vm_page_startup().