powerpc/mm/radix: Prettify mapped memory range print out
authorMichael Ellerman <mpe@ellerman.id.au>
Wed, 30 Aug 2017 07:41:17 +0000 (17:41 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 31 Aug 2017 04:26:42 +0000 (14:26 +1000)
When we map memory at boot we print out the ranges of real addresses
that we mapped and the page size that was used.

Currently it's a bit ugly:

  Mapped range 0x0 - 0x2000000000 with 0x40000000
  Mapped range 0x200000000000 - 0x202000000000 with 0x40000000

Pad the addresses so they line up, and print the page size using
actual units, eg:

  Mapped 0x0000000000000000-0x0000000001200000 with 64.0 KiB pages
  Mapped 0x0000000001200000-0x0000000040000000 with 2.00 MiB pages
  Mapped 0x0000000040000000-0x0000000100000000 with 1.00 GiB pages

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/pgtable-radix.c

index 5156d26277793daf921fefe4be33d0b4057f1b9b..39c252b54d1618a35f24084a1a455652daab17a7 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/memblock.h>
 #include <linux/of_fdt.h>
 #include <linux/mm.h>
+#include <linux/string_helpers.h>
 
 #include <asm/pgtable.h>
 #include <asm/pgalloc.h>
@@ -187,10 +188,14 @@ static inline void __meminit print_mapping(unsigned long start,
                                           unsigned long end,
                                           unsigned long size)
 {
+       char buf[10];
+
        if (end <= start)
                return;
 
-       pr_info("Mapped range 0x%lx - 0x%lx with 0x%lx\n", start, end, size);
+       string_get_size(size, 1, STRING_UNITS_2, buf, sizeof(buf));
+
+       pr_info("Mapped 0x%016lx-0x%016lx with %s pages\n", start, end, buf);
 }
 
 static int __meminit create_physical_mapping(unsigned long start,