x86/platform/uv: Log gap hole end size
authorMike Travis <mike.travis@hpe.com>
Wed, 6 Apr 2022 19:51:49 +0000 (14:51 -0500)
committerBorislav Petkov <bp@suse.de>
Thu, 7 Apr 2022 15:25:15 +0000 (17:25 +0200)
Show value of gap end in the kernel log which equates to number of physical
address bits used by system.

Signed-off-by: Mike Travis <mike.travis@hpe.com>
Signed-off-by: Steve Wahl <steve.wahl@hpe.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20220406195149.228164-4-steve.wahl@hpe.com
arch/x86/kernel/apic/x2apic_uv_x.c

index a6e9c27..4828552 100644 (file)
@@ -1346,7 +1346,7 @@ static void __init decode_gam_params(unsigned long ptr)
 static void __init decode_gam_rng_tbl(unsigned long ptr)
 {
        struct uv_gam_range_entry *gre = (struct uv_gam_range_entry *)ptr;
-       unsigned long lgre = 0;
+       unsigned long lgre = 0, gend = 0;
        int index = 0;
        int sock_min = 999999, pnode_min = 99999;
        int sock_max = -1, pnode_max = -1;
@@ -1380,6 +1380,9 @@ static void __init decode_gam_rng_tbl(unsigned long ptr)
                        flag, size, suffix[order],
                        gre->type, gre->nasid, gre->sockid, gre->pnode);
 
+               if (gre->type == UV_GAM_RANGE_TYPE_HOLE)
+                       gend = (unsigned long)gre->limit << UV_GAM_RANGE_SHFT;
+
                /* update to next range start */
                lgre = gre->limit;
                if (sock_min > gre->sockid)
@@ -1397,7 +1400,8 @@ static void __init decode_gam_rng_tbl(unsigned long ptr)
        _max_pnode      = pnode_max;
        _gr_table_len   = index;
 
-       pr_info("UV: GRT: %d entries, sockets(min:%x,max:%x) pnodes(min:%x,max:%x)\n", index, _min_socket, _max_socket, _min_pnode, _max_pnode);
+       pr_info("UV: GRT: %d entries, sockets(min:%x,max:%x), pnodes(min:%x,max:%x), gap_end(%d)\n",
+         index, _min_socket, _max_socket, _min_pnode, _max_pnode, fls64(gend));
 }
 
 /* Walk through UVsystab decoding the fields */