The BAU confers no benefit to a UV system running with only one hub/socket.
Permanently disable the BAU driver if there are less than two hubs online
to avoid BAU overhead. We have observed failed boots on single-socket UV4
systems caused by BAU that are avoided with this patch.

Signed-off-by: Andrew Banman <aban...@hpe.com>
Acked-by: Russ Anderson <r...@hpe.com>
Acked-by: Mike Travis <mike.tra...@hpe.com>
---
 arch/x86/platform/uv/tlb_uv.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
index 2511a28..88216cc 100644
--- a/arch/x86/platform/uv/tlb_uv.c
+++ b/arch/x86/platform/uv/tlb_uv.c
@@ -2251,6 +2251,12 @@ static int __init uv_bau_init(void)
        }
 
        nuvhubs = uv_num_possible_blades();
+       if (nuvhubs < 2) {
+               pr_crit("UV: BAU disabled - insufficient hub count\n");
+               set_bau_off();
+               nobau_perm = 1;
+               return 0;
+       }
 
        uv_base_pnode = 0x7fffffff;
        for (uvhub = 0; uvhub < nuvhubs; uvhub++) {
-- 
1.8.2.1

Reply via email to