mm: report the pagesize backing a VMA in /proc/pid/smaps
It is useful to verify a hugepage-aware application is using the expected pagesizes for its memory regions. This patch creates an entry called KernelPageSize in /proc/pid/smaps that is the size of page used by the kernel to back a VMA. The entry is not called PageSize as it is possible the MMU uses a different size. This extension should not break any sensible parser that skips lines containing unrecognised information. Signed-off-by: Mel Gorman <mel@csn.ul.ie> Acked-by: "KOSAKI Motohiro" <kosaki.motohiro@jp.fujitsu.com> Cc: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
238c6d5483
commit
08fba69986
16
mm/hugetlb.c
16
mm/hugetlb.c
@ -219,6 +219,22 @@ static pgoff_t vma_hugecache_offset(struct hstate *h,
|
||||
(vma->vm_pgoff >> huge_page_order(h));
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the size of the pages allocated when backing a VMA. In the majority
|
||||
* cases this will be same size as used by the page table entries.
|
||||
*/
|
||||
unsigned long vma_kernel_pagesize(struct vm_area_struct *vma)
|
||||
{
|
||||
struct hstate *hstate;
|
||||
|
||||
if (!is_vm_hugetlb_page(vma))
|
||||
return PAGE_SIZE;
|
||||
|
||||
hstate = hstate_vma(vma);
|
||||
|
||||
return 1UL << (hstate->order + PAGE_SHIFT);
|
||||
}
|
||||
|
||||
/*
|
||||
* Flags for MAP_PRIVATE reservations. These are stored in the bottom
|
||||
* bits of the reservation map pointer, which are always clear due to
|
||||
|
Reference in New Issue
Block a user