Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752896AbbEFRB7 (ORCPT ); Wed, 6 May 2015 13:01:59 -0400 Received: from mail-by2on0112.outbound.protection.outlook.com ([207.46.100.112]:39392 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752399AbbEFRBr (ORCPT ); Wed, 6 May 2015 13:01:47 -0400 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; alien8.de; dkim=none (message not signed) header.d=none; X-WSS-ID: 0NNXTYL-08-W6W-02 X-M-MSG: From: Aravind Gopalakrishnan To: , , , , , , CC: , , , , , , , , , , , , , , , , , Subject: [PATCH V2 0/6] Enable deferred error interrupts Date: Wed, 6 May 2015 06:58:52 -0500 Message-ID: <1430913538-1415-1-git-send-email-Aravind.Gopalakrishnan@amd.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.222;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(428002)(189002)(199003)(62966003)(50466002)(5001770100001)(77096005)(106466001)(50226001)(50986999)(77156002)(229853001)(47776003)(46102003)(48376002)(101416001)(86362001)(36756003)(87936001)(53416004)(92566002)(2201001)(5001920100001)(105586002)(189998001);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR02MB1110;H:atltwp02.amd.com;FPR:;SPF:None;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR02MB1110; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:BN3PR02MB1110;BCL:0;PCL:0;RULEID:;SRVR:BN3PR02MB1110; X-Forefront-PRVS: 0568F32D91 X-OriginatorOrg: amd4.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2015 17:01:37.0864 (UTC) X-MS-Exchange-CrossTenant-Id: fde4dada-be84-483f-92cc-e026cbee8e96 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fde4dada-be84-483f-92cc-e026cbee8e96;Ip=[165.204.84.222];Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR02MB1110 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3354 Lines: 71 Deferred errors indicate error conditions that were not corrected, but require no action from S/W (or action is optional).These errors provide info about a latent UC MCE that can occur when a poisoned data is consumed by the processor. Newer AMD processors can generate deferred errors and can be configured to generate APIC interrupts on such events. This patchset introduces a new interrupt handler for deferred errors and configures the HW if the feature is present. Patch1: Factor out logging mechanism so we can reuse for deferred errors No functional change. Patch2: Read MCx_ADDR(bank) before calling mce_log(). This fixes an issue as currently, amd_decode_mce() will always only print error address as 0x0 even if a valid address exists. Patch3: Defines SUCCOR cpuid bit. This indicates prescence of features such as data poisoning and deferred error interrupts in hardware. Patch4: Implement the interrupt handler. - setup vector number, build the interrupt and implement handler function in this patch. Patch5, Patch 6: Cleanups in the code. No functional changes are introduced. Changes from V1: - Two Prepatches- * Factor out logging mechanism so we can reuse for deferred errors * Read MCx_ADDR(bank) before calling mce_log() so we get relevant error address printed out on kernel logs - Providing short description of Deferred errors here as well as in commit message of patch2 (per Ingo, Boris) - Adding comments around mce_flags to define the bitfields better (per Boris) - Assign truth values using double negation and 'BIT' macros. Vertically align statements while at it. (per Boris) - Change definitions of 'deferred_interrupt' to 'deferred_error_interrupt'; DEFERRED_APIC_VECTOR to DEFERRED_ERROR_VECTOR and irq_deferred_count to irq_deferred_error_count (per Andy, Boris) - Do the BIOS workaround check for all families as we are behind a cpuid bit anyway. And print a FW_BUG message as needed. (per Boris) - Updating the timestamp of patch to May 2015 in mce_amd.c Aravind Gopalakrishnan (6): x86/MCE/AMD: Factor out logging mechanism x86/MCE/AMD: Read MCx_ADDR(bank) before we log the error x86/mce: Define 'SUCCOR' cpuid bit x86/MCE/AMD: Introduce deferred error interrupt handler x86, irq: Cleanup ordering of vector numbers x86/MCE/AMD: Rename setup_APIC_mce arch/x86/include/asm/entry_arch.h | 3 + arch/x86/include/asm/hardirq.h | 3 + arch/x86/include/asm/hw_irq.h | 2 + arch/x86/include/asm/irq_vectors.h | 11 +-- arch/x86/include/asm/mce.h | 20 ++++- arch/x86/include/asm/trace/irq_vectors.h | 6 ++ arch/x86/include/asm/traps.h | 3 +- arch/x86/kernel/cpu/mcheck/mce.c | 3 +- arch/x86/kernel/cpu/mcheck/mce_amd.c | 132 ++++++++++++++++++++++++++++--- arch/x86/kernel/entry_64.S | 5 ++ arch/x86/kernel/irq.c | 6 ++ arch/x86/kernel/irqinit.c | 4 + arch/x86/kernel/traps.c | 5 ++ 13 files changed, 182 insertions(+), 21 deletions(-) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/