Steve Sistare writes:
 > This is a known issue on Solaris/x86.  The issue is that over time,
 > non-relocatable kernel memory is allocated at physical addresses
 > throughout memory, fragmenting the PA space, and preventing the
 > allocation of a physically contiguous large page.  The only
 > workaround is to start your large page application soon after a
 > reboot, before memory becomes fragmented.

Ah, thanks for the answer!  I had (incorrectly) assumed my inability
to allocate contiguous memory was due to page coloring fragmenting the
PA space, I didn't realize that it was due to kernel memory.

 > In contrast, the SPARC VM implementation includes a "kernel cage",
 > which confines kernel memory allocations to a smaller physically
 > contiguous region of memory, which may grow if needed.  Non-kernel
 > allocations outside of the cage can be relocated as needed to create
 > contiguous large pages.  The primary purpose of the kernel cage was
 > to enable memory dynamic reconfiguration.  Since this is not
 > supported on x86 systems, the extra complexity of the cage was
 > not carried forward to the amd64 VM implementation, with the
 > unfortunate side effect of reducing large page availability.
 > 
 > One component of the VM2 project will modify page freelist
 > management to preserve contiguous large pages when possible, but
 > I don't have any details on schedule.

Thank you again for the information,

Drew
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to