[PATCH 1/2] Disable UV BAU by default

From: Alex Thorlton
Date: Mon Mar 21 2016 - 13:11:18 EST


For several years, the common practice has been to boot UVs with the
"nobau" parameter on the command line, to disable the BAU. We've
decided that it makes more sense to just disable the BAU by default in
the kernel, and provide the option to turn it on, if desired.

Signed-off-by: Alex Thorlton <athorlton@xxxxxxx>
Reviewed-by: Hedi Berriche <hedi@xxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: x86@xxxxxxxxxx
---
arch/x86/platform/uv/tlb_uv.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
index 3b6ec42..a5609a3 100644
--- a/arch/x86/platform/uv/tlb_uv.c
+++ b/arch/x86/platform/uv/tlb_uv.c
@@ -37,7 +37,7 @@ static int timeout_base_ns[] = {
};

static int timeout_us;
-static int nobau;
+static int nobau = 1;
static int nobau_perm;
static cycles_t congested_cycles;

@@ -106,13 +106,22 @@ static char *stat_description[] = {
"enable: number times use of the BAU was re-enabled"
};

-static int __init
-setup_nobau(char *arg)
+static int __init setup_bau(char *arg)
{
- nobau = 1;
+ if (!arg)
+ return -EINVAL;
+
+ if (!strncmp(arg, "on", 2)) {
+ nobau = 0;
+ pr_info("UV BAU Enabled\n");
+ } else if (!strncmp(arg, "off", 3)) {
+ nobau = 1;
+ pr_info("UV BAU Disabled\n");
+ }
+
return 0;
}
-early_param("nobau", setup_nobau);
+early_param("bau", setup_bau);

/* base pnode in this partition */
static int uv_base_pnode __read_mostly;
--
1.8.5.6