Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757416AbcCURLM (ORCPT ); Mon, 21 Mar 2016 13:11:12 -0400 Received: from relay1.sgi.com ([192.48.180.66]:56771 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757210AbcCURLI (ORCPT ); Mon, 21 Mar 2016 13:11:08 -0400 From: Alex Thorlton To: linux-kernel@vger.kernel.org Cc: Alex Thorlton , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Hedi Berriche , x86@kernel.org Subject: [PATCH 1/2] Disable UV BAU by default Date: Mon, 21 Mar 2016 12:04:11 -0500 Message-Id: <1458579852-37580-2-git-send-email-athorlton@sgi.com> X-Mailer: git-send-email 1.8.5.6 In-Reply-To: <1458579852-37580-1-git-send-email-athorlton@sgi.com> References: <1458579852-37580-1-git-send-email-athorlton@sgi.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1562 Lines: 57 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 Reviewed-by: Hedi Berriche Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: x86@kernel.org --- 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