From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [4.4,35/47] x86/mce: Detect local MCEs properly From: Greg Kroah-Hartman Message-Id: <20180710182338.617388540@linuxfoundation.org> Date: Tue, 10 Jul 2018 20:24:59 +0200 To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yazen Ghannam , Borislav Petkov , Andy Lutomirski , Borislav Petkov , Brian Gerst , Denys Vlasenko , "H. Peter Anvin" , Linus Torvalds , Peter Zijlstra , Thomas Gleixner , Tony Luck , linux-edac , Ingo Molnar List-ID: NC40LXN0YWJsZSByZXZpZXcgcGF0Y2guICBJZiBhbnlvbmUgaGFzIGFueSBvYmplY3Rpb25zLCBw bGVhc2UgbGV0IG1lIGtub3cuCgotLS0tLS0tLS0tLS0tLS0tLS0KCkZyb206IFlhemVuIEdoYW5u YW0gPFlhemVuLkdoYW5uYW1AYW1kLmNvbT4KCmNvbW1pdCBmZWFkMzVjNjg5MjY2ODJjOTBjOTk1 ZjIyYjQ4ZjFjOGQ3ODg2NWMxIHVwc3RyZWFtLgoKQ2hlY2sgdGhlIE1DR19TVEFUVVNfTE1DRVMg Yml0IG9uIEludGVsIHRvIHZlcmlmeSB0aGF0IGN1cnJlbnQgTUNFIGlzCmxvY2FsLiBJdCBpcyBh bHdheXMgbG9jYWwgb24gQU1ELgoKU2lnbmVkLW9mZi1ieTogWWF6ZW4gR2hhbm5hbSA8WWF6ZW4u R2hhbm5hbUBhbWQuY29tPgpbIE1hc3NhZ2VkIGl0IGEgYml0LiBSZWZsb3dlZCBjb21tZW50cy4g U2h1dCB1cCAtV21heWJlLXVuaW5pdGlhbGl6ZWQuIF0KU2lnbmVkLW9mZi1ieTogQm9yaXNsYXYg UGV0a292IDxicEBzdXNlLmRlPgpDYzogQW5keSBMdXRvbWlyc2tpIDxsdXRvQGFtYWNhcGl0YWwu bmV0PgpDYzogQm9yaXNsYXYgUGV0a292IDxicEBhbGllbjguZGU+CkNjOiBCcmlhbiBHZXJzdCA8 YnJnZXJzdEBnbWFpbC5jb20+CkNjOiBEZW55cyBWbGFzZW5rbyA8ZHZsYXNlbmtAcmVkaGF0LmNv bT4KQ2M6IEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29tPgpDYzogTGludXMgVG9ydmFsZHMg PHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpDYzogUGV0ZXIgWmlqbHN0cmEgPHBldGVy ekBpbmZyYWRlYWQub3JnPgpDYzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+ CkNjOiBUb255IEx1Y2sgPHRvbnkubHVja0BpbnRlbC5jb20+CkNjOiBsaW51eC1lZGFjIDxsaW51 eC1lZGFjQHZnZXIua2VybmVsLm9yZz4KTGluazogaHR0cDovL2xrbWwua2VybmVsLm9yZy9yLzE0 NjIwMTk2MzctMTY0NzQtOC1naXQtc2VuZC1lbWFpbC1icEBhbGllbjguZGUKU2lnbmVkLW9mZi1i eTogSW5nbyBNb2xuYXIgPG1pbmdvQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IEdyZWcgS3Jv YWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+Ci0tLQogYXJjaC94ODYva2Vy bmVsL2NwdS9tY2hlY2svbWNlLmMgfCAgIDMzICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoK CgotLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJz Y3JpYmUgbGludXgtZWRhYyIgaW4KdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2 Z2VyLmtlcm5lbC5vcmcKTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2VybmVs Lm9yZy9tYWpvcmRvbW8taW5mby5odG1sCgotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVj ay9tY2UuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9tY2UuYwpAQCAtOTgwLDEx ICs5ODAsMTIgQEAgdm9pZCBkb19tYWNoaW5lX2NoZWNrKHN0cnVjdCBwdF9yZWdzICpyZQogCWlu dCBpOwogCWludCB3b3JzdCA9IDA7CiAJaW50IHNldmVyaXR5OworCiAJLyoKIAkgKiBFc3RhYmxp c2ggc2VxdWVudGlhbCBvcmRlciBiZXR3ZWVuIHRoZSBDUFVzIGVudGVyaW5nIHRoZSBtYWNoaW5l CiAJICogY2hlY2sgaGFuZGxlci4KIAkgKi8KLQlpbnQgb3JkZXI7CisJaW50IG9yZGVyID0gLTE7 CiAJLyoKIAkgKiBJZiBub193YXlfb3V0IGdldHMgc2V0LCB0aGVyZSBpcyBubyBzYWZlIHdheSB0 byByZWNvdmVyIGZyb20gdGhpcwogCSAqIE1DRS4gIElmIG1jYV9jZmcudG9sZXJhbnQgaXMgY3Jh bmtlZCB1cCwgd2UnbGwgdHJ5IGFueXdheS4KQEAgLTEwMDAsNyArMTAwMSwxMiBAQCB2b2lkIGRv X21hY2hpbmVfY2hlY2soc3RydWN0IHB0X3JlZ3MgKnJlCiAJY2hhciAqbXNnID0gIlVua25vd24i OwogCXU2NCByZWNvdmVyX3BhZGRyID0gfjB1bGw7CiAJaW50IGZsYWdzID0gTUZfQUNUSU9OX1JF UVVJUkVEOwotCWludCBsbWNlID0gMDsKKworCS8qCisJICogTUNFcyBhcmUgYWx3YXlzIGxvY2Fs IG9uIEFNRC4gU2FtZSBpcyBkZXRlcm1pbmVkIGJ5IE1DR19TVEFUVVNfTE1DRVMKKwkgKiBvbiBJ bnRlbC4KKwkgKi8KKwlpbnQgbG1jZSA9IDE7CiAKIAkvKiBJZiB0aGlzIENQVSBpcyBvZmZsaW5l LCBqdXN0IGJhaWwgb3V0LiAqLwogCWlmIChjcHVfaXNfb2ZmbGluZShzbXBfcHJvY2Vzc29yX2lk KCkpKSB7CkBAIC0xMDM5LDE5ICsxMDQ1LDIwIEBAIHZvaWQgZG9fbWFjaGluZV9jaGVjayhzdHJ1 Y3QgcHRfcmVncyAqcmUKIAkJa2lsbF9pdCA9IDE7CiAKIAkvKgotCSAqIENoZWNrIGlmIHRoaXMg TUNFIGlzIHNpZ25hbGVkIHRvIG9ubHkgdGhpcyBsb2dpY2FsIHByb2Nlc3NvcgorCSAqIENoZWNr IGlmIHRoaXMgTUNFIGlzIHNpZ25hbGVkIHRvIG9ubHkgdGhpcyBsb2dpY2FsIHByb2Nlc3NvciwK KwkgKiBvbiBJbnRlbCBvbmx5LgogCSAqLwotCWlmIChtLm1jZ3N0YXR1cyAmIE1DR19TVEFUVVNf TE1DRVMpCi0JCWxtY2UgPSAxOwotCWVsc2UgewotCQkvKgotCQkgKiBHbyB0aHJvdWdoIGFsbCB0 aGUgYmFua3MgaW4gZXhjbHVzaW9uIG9mIHRoZSBvdGhlciBDUFVzLgotCQkgKiBUaGlzIHdheSB3 ZSBkb24ndCByZXBvcnQgZHVwbGljYXRlZCBldmVudHMgb24gc2hhcmVkIGJhbmtzCi0JCSAqIGJl Y2F1c2UgdGhlIGZpcnN0IG9uZSB0byBzZWUgaXQgd2lsbCBjbGVhciBpdC4KLQkJICogSWYgdGhp cyBpcyBhIExvY2FsIE1DRSwgdGhlbiBubyBuZWVkIHRvIHBlcmZvcm0gcmVuZGV6dm91cy4KLQkJ ICovCisJaWYgKG0uY3B1dmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwpCisJCWxtY2UgPSBtLm1j Z3N0YXR1cyAmIE1DR19TVEFUVVNfTE1DRVM7CisKKwkvKgorCSAqIEdvIHRocm91Z2ggYWxsIGJh bmtzIGluIGV4Y2x1c2lvbiBvZiB0aGUgb3RoZXIgQ1BVcy4gVGhpcyB3YXkgd2UKKwkgKiBkb24n dCByZXBvcnQgZHVwbGljYXRlZCBldmVudHMgb24gc2hhcmVkIGJhbmtzIGJlY2F1c2UgdGhlIGZp cnN0IG9uZQorCSAqIHRvIHNlZSBpdCB3aWxsIGNsZWFyIGl0LiBJZiB0aGlzIGlzIGEgTG9jYWwg TUNFLCB0aGVuIG5vIG5lZWQgdG8KKwkgKiBwZXJmb3JtIHJlbmRlenZvdXMuCisJICovCisJaWYg KCFsbWNlKQogCQlvcmRlciA9IG1jZV9zdGFydCgmbm9fd2F5X291dCk7Ci0JfQogCiAJZm9yIChp ID0gMDsgaSA8IGNmZy0+YmFua3M7IGkrKykgewogCQlfX2NsZWFyX2JpdChpLCB0b2NsZWFyKTsK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0F179C3279B for ; Tue, 10 Jul 2018 18:29:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D0A292083E for ; Tue, 10 Jul 2018 18:29:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D0A292083E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linuxfoundation.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387684AbeGJS3N (ORCPT ); Tue, 10 Jul 2018 14:29:13 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:45240 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732459AbeGJS3L (ORCPT ); Tue, 10 Jul 2018 14:29:11 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id D8447EB8; Tue, 10 Jul 2018 18:28:59 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yazen Ghannam , Borislav Petkov , Andy Lutomirski , Borislav Petkov , Brian Gerst , Denys Vlasenko , "H. Peter Anvin" , Linus Torvalds , Peter Zijlstra , Thomas Gleixner , Tony Luck , linux-edac , Ingo Molnar Subject: [PATCH 4.4 35/47] x86/mce: Detect local MCEs properly Date: Tue, 10 Jul 2018 20:24:59 +0200 Message-Id: <20180710182338.617388540@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180710182337.047502999@linuxfoundation.org> References: <20180710182337.047502999@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Yazen Ghannam commit fead35c68926682c90c995f22b48f1c8d78865c1 upstream. Check the MCG_STATUS_LMCES bit on Intel to verify that current MCE is local. It is always local on AMD. Signed-off-by: Yazen Ghannam [ Massaged it a bit. Reflowed comments. Shut up -Wmaybe-uninitialized. ] Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: linux-edac Link: http://lkml.kernel.org/r/1462019637-16474-8-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar Signed-off-by: Greg Kroah-Hartman --- arch/x86/kernel/cpu/mcheck/mce.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -980,11 +980,12 @@ void do_machine_check(struct pt_regs *re int i; int worst = 0; int severity; + /* * Establish sequential order between the CPUs entering the machine * check handler. */ - int order; + int order = -1; /* * If no_way_out gets set, there is no safe way to recover from this * MCE. If mca_cfg.tolerant is cranked up, we'll try anyway. @@ -1000,7 +1001,12 @@ void do_machine_check(struct pt_regs *re char *msg = "Unknown"; u64 recover_paddr = ~0ull; int flags = MF_ACTION_REQUIRED; - int lmce = 0; + + /* + * MCEs are always local on AMD. Same is determined by MCG_STATUS_LMCES + * on Intel. + */ + int lmce = 1; /* If this CPU is offline, just bail out. */ if (cpu_is_offline(smp_processor_id())) { @@ -1039,19 +1045,20 @@ void do_machine_check(struct pt_regs *re kill_it = 1; /* - * Check if this MCE is signaled to only this logical processor + * Check if this MCE is signaled to only this logical processor, + * on Intel only. */ - if (m.mcgstatus & MCG_STATUS_LMCES) - lmce = 1; - else { - /* - * Go through all the banks in exclusion of the other CPUs. - * This way we don't report duplicated events on shared banks - * because the first one to see it will clear it. - * If this is a Local MCE, then no need to perform rendezvous. - */ + if (m.cpuvendor == X86_VENDOR_INTEL) + lmce = m.mcgstatus & MCG_STATUS_LMCES; + + /* + * Go through all banks in exclusion of the other CPUs. This way we + * don't report duplicated events on shared banks because the first one + * to see it will clear it. If this is a Local MCE, then no need to + * perform rendezvous. + */ + if (!lmce) order = mce_start(&no_way_out); - } for (i = 0; i < cfg->banks; i++) { __clear_bit(i, toclear);