lkml.org 
[lkml]   [2019]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 16/20] x86/tsx: Add "auto" option to the tsx= cmdline parameter
    Date
    From: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>

    commit 7531a3596e3272d1f6841e0d601a614555dc6b65 upstream.

    Platforms which are not affected by X86_BUG_TAA may want the TSX feature
    enabled. Add "auto" option to the TSX cmdline parameter. When tsx=auto
    disable TSX when X86_BUG_TAA is present, otherwise enable TSX.

    More details on X86_BUG_TAA can be found here:
    https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/tsx_async_abort.html

    [ bp: Extend the arg buffer to accommodate "auto\0". ]

    Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Tony Luck <tony.luck@intel.com>
    Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
    [bwh: Backported to 4.4: adjust filename]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    Documentation/kernel-parameters.txt | 3 +++
    arch/x86/kernel/cpu/tsx.c | 7 ++++++-
    2 files changed, 9 insertions(+), 1 deletion(-)

    --- a/Documentation/kernel-parameters.txt
    +++ b/Documentation/kernel-parameters.txt
    @@ -4073,6 +4073,9 @@ bytes respectively. Such letter suffixes
    update. This new MSR allows for the reliable
    deactivation of the TSX functionality.)

    + auto - Disable TSX if X86_BUG_TAA is present,
    + otherwise enable TSX on the system.
    +
    Not specifying this option is equivalent to tsx=off.

    See Documentation/hw-vuln/tsx_async_abort.rst
    --- a/arch/x86/kernel/cpu/tsx.c
    +++ b/arch/x86/kernel/cpu/tsx.c
    @@ -75,7 +75,7 @@ static bool __init tsx_ctrl_is_supported

    void __init tsx_init(void)
    {
    - char arg[4] = {};
    + char arg[5] = {};
    int ret;

    if (!tsx_ctrl_is_supported())
    @@ -87,6 +87,11 @@ void __init tsx_init(void)
    tsx_ctrl_state = TSX_CTRL_ENABLE;
    } else if (!strcmp(arg, "off")) {
    tsx_ctrl_state = TSX_CTRL_DISABLE;
    + } else if (!strcmp(arg, "auto")) {
    + if (boot_cpu_has_bug(X86_BUG_TAA))
    + tsx_ctrl_state = TSX_CTRL_DISABLE;
    + else
    + tsx_ctrl_state = TSX_CTRL_ENABLE;
    } else {
    tsx_ctrl_state = TSX_CTRL_DISABLE;
    pr_err("tsx: invalid option, defaulting to off\n");

    \
     
     \ /
      Last update: 2019-11-15 07:21    [W:2.948 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site