Re: [PATCH] HUGETLBFS: Align memory request to multiple of huge page size to avoid underallocating.
From: Andrew Morton <akpm@linux-foundation.org>
Date: 2012-02-28 03:03:18
Also in:
lkml
On Mon, 27 Feb 2012 21:55:17 -0500 Steven Truelove [off-list ref] wrote:
quoted
A few things... - sys_mmap_pgoff() does the rounding up prior to calling hugetlb_file_setup(). ipc/shm.c:newseg() does not. We should be consistent here: do it in the caller or the callee, not both (or neither!). I guess doing it in the callee would be best. - The above code could/should have used ALIGN(). Or round_up(): the difference presently escapes me, even though it was so obvious that we left all these things undocumented. - What's the point in aligning the length if we don't also look at the start address? If that isn't a multiple of huge_page_size(), we will need an additional page.Since mmap has an address to check and shmget does not, if the address is going to be checked it will need to be in the caller.
Or pass a value of 0 from shmget.
If you like, I will leave the size check in hugetlb_file_setup() and remove the size check from mmap_pgoff, but replace it with a check of the address. That will centralize the common check (size of buffer), and let mmap_pgoff check the part that is unique to it. Patch shortly. Steven Truelove
-- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>