On Fri, 2 Jun 2006, Adam Litke wrote:
On powerpc, each segment can contain pages of only one size. When a
hugetlb mapping is requested, a segment is located and marked for use
with huge pages. This is a uni-directional operation -- hugetlb
segments are never marked for use again with normal pages. For long
running processes which make use of a combination of normal and hugetlb
mappings, this behavior can unduly constrain the virtual address space.
The following patch introduces a architecture-specific vm_ops.close()
hook. For all architectures besides powerpc, this is a no-op. On
powerpc, the low and high segments are scanned to locate empty hugetlb
segments which can be made available for normal mappings. Comments?
Wouldn't hugetlb_free_pgd_range be a better place to do that kind of
thing, all within arch/powerpc, no need for arch_hugetlb_close_vma etc?
Hugh