diff options
Diffstat (limited to 'mm/hugetlb.c')
-rw-r--r-- | mm/hugetlb.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 243a8684d180..0c74c14dd2f7 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -1006,15 +1006,27 @@ static void __init hugetlb_init_hstates(void) | |||
1006 | } | 1006 | } |
1007 | } | 1007 | } |
1008 | 1008 | ||
1009 | static char * __init memfmt(char *buf, unsigned long n) | ||
1010 | { | ||
1011 | if (n >= (1UL << 30)) | ||
1012 | sprintf(buf, "%lu GB", n >> 30); | ||
1013 | else if (n >= (1UL << 20)) | ||
1014 | sprintf(buf, "%lu MB", n >> 20); | ||
1015 | else | ||
1016 | sprintf(buf, "%lu KB", n >> 10); | ||
1017 | return buf; | ||
1018 | } | ||
1019 | |||
1009 | static void __init report_hugepages(void) | 1020 | static void __init report_hugepages(void) |
1010 | { | 1021 | { |
1011 | struct hstate *h; | 1022 | struct hstate *h; |
1012 | 1023 | ||
1013 | for_each_hstate(h) { | 1024 | for_each_hstate(h) { |
1014 | printk(KERN_INFO "Total HugeTLB memory allocated, " | 1025 | char buf[32]; |
1015 | "%ld %dMB pages\n", | 1026 | printk(KERN_INFO "HugeTLB registered %s page size, " |
1016 | h->free_huge_pages, | 1027 | "pre-allocated %ld pages\n", |
1017 | 1 << (h->order + PAGE_SHIFT - 20)); | 1028 | memfmt(buf, huge_page_size(h)), |
1029 | h->free_huge_pages); | ||
1018 | } | 1030 | } |
1019 | } | 1031 | } |
1020 | 1032 | ||