From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (146.0.238.70:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 12 Dec 2018 21:45:21 -0000 Received: from userp2120.oracle.com ([156.151.31.85]) by Galois.linutronix.de with esmtps (TLS1.2:RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1gXCJk-0001v1-7O for speck@linutronix.de; Wed, 12 Dec 2018 22:45:20 +0100 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id wBCLiXHI106968 for ; Wed, 12 Dec 2018 21:45:13 GMT Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp2120.oracle.com with ESMTP id 2pb7tf0s5c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 12 Dec 2018 21:45:13 +0000 Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id wBCLj7t9026532 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 12 Dec 2018 21:45:08 GMT Received: from abhmp0001.oracle.com (abhmp0001.oracle.com [141.146.116.7]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id wBCLj78i016616 for ; Wed, 12 Dec 2018 21:45:07 GMT Date: Wed, 12 Dec 2018 16:45:06 -0500 From: Konrad Rzeszutek Wilk Subject: [MODERATED] Re: [PATCH v2 4/8] MDSv2 0 Message-ID: <20181212214506.GT9077@char.us.oracle.com> References: MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit To: speck@linutronix.de List-ID: On Mon, Dec 10, 2018 at 09:53:36AM -0800, speck for Andi Kleen wrote: > From: Andi Kleen > Subject: x86/speculation/mds: Add sysfs reporting > > Report mds mitigation state in sysfs vulnerabilities. > > Signed-off-by: Andi Kleen > --- > .../ABI/testing/sysfs-devices-system-cpu | 1 + > arch/x86/kernel/cpu/bugs.c | 16 ++++++++++++++++ > drivers/base/cpu.c | 8 ++++++++ > 3 files changed, 25 insertions(+) > > diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu > index 73318225a368..02b7bb711214 100644 > --- a/Documentation/ABI/testing/sysfs-devices-system-cpu > +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu > @@ -477,6 +477,7 @@ What: /sys/devices/system/cpu/vulnerabilities > /sys/devices/system/cpu/vulnerabilities/spectre_v2 > /sys/devices/system/cpu/vulnerabilities/spec_store_bypass > /sys/devices/system/cpu/vulnerabilities/l1tf > + /sys/devices/system/cpu/vulnerabilities/mds > Date: January 2018 > Contact: Linux kernel mailing list > Description: Information about CPU vulnerabilities > diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c > index 8200b41b8db9..accab3279068 100644 > --- a/arch/x86/kernel/cpu/bugs.c > +++ b/arch/x86/kernel/cpu/bugs.c > @@ -1175,6 +1175,16 @@ static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr > if (boot_cpu_has(X86_FEATURE_L1TF_PTEINV)) > return l1tf_show_state(buf); > break; > + > + case X86_BUG_MDS: > + /* Assumes Hypervisor exposed HT state to us if in guest */ > + if (boot_cpu_has(X86_FEATURE_MB_CLEAR)) { > + if (cpu_smt_control != CPU_SMT_ENABLED) > + return sprintf(buf, "Mitigation: MB_CLEAR\n"); I am not sure if a normal system admin would understand what MB_CLEAR means. Is there a way to make this more ..grokked? > + return sprintf(buf, "Mitigation: MB_CLEAR, HT vulnerable\n"); Also you could use "%s", cpu_smt_control != CPU_SMT_ENABLED : "", "SMT vulnerable...")? > + } > + return sprintf(buf, "Vulnerable\n"); > + > default: > break; > } > @@ -1206,4 +1216,10 @@ ssize_t cpu_show_l1tf(struct device *dev, struct device_attribute *attr, char *b > { > return cpu_show_common(dev, attr, buf, X86_BUG_L1TF); > } > + > +ssize_t cpu_show_mds(struct device *dev, struct device_attribute *attr, char *buf) > +{ > + return cpu_show_common(dev, attr, buf, X86_BUG_MDS); > +} > + > #endif > diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c > index eb9443d5bae1..2fd6ca1021c2 100644 > --- a/drivers/base/cpu.c > +++ b/drivers/base/cpu.c > @@ -546,11 +546,18 @@ ssize_t __weak cpu_show_l1tf(struct device *dev, > return sprintf(buf, "Not affected\n"); > } > > +ssize_t __weak cpu_show_mds(struct device *dev, > + struct device_attribute *attr, char *buf) > +{ > + return sprintf(buf, "Not affected\n"); > +} > + > static DEVICE_ATTR(meltdown, 0444, cpu_show_meltdown, NULL); > static DEVICE_ATTR(spectre_v1, 0444, cpu_show_spectre_v1, NULL); > static DEVICE_ATTR(spectre_v2, 0444, cpu_show_spectre_v2, NULL); > static DEVICE_ATTR(spec_store_bypass, 0444, cpu_show_spec_store_bypass, NULL); > static DEVICE_ATTR(l1tf, 0444, cpu_show_l1tf, NULL); > +static DEVICE_ATTR(mds, 0444, cpu_show_mds, NULL); > > static struct attribute *cpu_root_vulnerabilities_attrs[] = { > &dev_attr_meltdown.attr, > @@ -558,6 +565,7 @@ static struct attribute *cpu_root_vulnerabilities_attrs[] = { > &dev_attr_spectre_v2.attr, > &dev_attr_spec_store_bypass.attr, > &dev_attr_l1tf.attr, > + &dev_attr_mds.attr, > NULL > }; > > -- > 2.17.2