hugetlb: printk cleanup

- Reword sentence to clarify meaning with multiple options
- Add support for using GB prefixes for the page size
- Add extra printk to delayed > MAX_ORDER allocation code

Acked-by: Adam Litke <agl@us.ibm.com>
Acked-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Andi Kleen 2008-07-23 21:27:49 -07:00 committed by Linus Torvalds
parent 8faa8b077b
commit 4abd32dbab

View File

@ -1006,15 +1006,27 @@ static void __init hugetlb_init_hstates(void)
} }
} }
static char * __init memfmt(char *buf, unsigned long n)
{
if (n >= (1UL << 30))
sprintf(buf, "%lu GB", n >> 30);
else if (n >= (1UL << 20))
sprintf(buf, "%lu MB", n >> 20);
else
sprintf(buf, "%lu KB", n >> 10);
return buf;
}
static void __init report_hugepages(void) static void __init report_hugepages(void)
{ {
struct hstate *h; struct hstate *h;
for_each_hstate(h) { for_each_hstate(h) {
printk(KERN_INFO "Total HugeTLB memory allocated, " char buf[32];
"%ld %dMB pages\n", printk(KERN_INFO "HugeTLB registered %s page size, "
h->free_huge_pages, "pre-allocated %ld pages\n",
1 << (h->order + PAGE_SHIFT - 20)); memfmt(buf, huge_page_size(h)),
h->free_huge_pages);
} }
} }