Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1564672ybt; Thu, 18 Jun 2020 11:36:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxBX2/0fJLkjtrfNSWI3xamFypIEVjcGI/5ESJcXfzv5jkm/NbCAx+WM8r21OfU9mV87FAt X-Received: by 2002:a05:6402:3ca:: with SMTP id t10mr5614958edw.128.1592505408776; Thu, 18 Jun 2020 11:36:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592505408; cv=none; d=google.com; s=arc-20160816; b=VqCsjTDWWax5iZu/c6PHWcBGq02SryzRNhUN/2D1+Hb6XYifS8pWuWIUJdObJjDmZJ 0X3MxSQQU25v9krZnHa8dYbtPlNo8jChYmF3XPrQ+GxOxEheE1IjDDGwgxXWrQbVtzqz MV5IoJPJxja+fVEyPTmlcsU/St9NUo01I73bx80w6JUL6DvvzJqNWu49hkYoQ5hGy1nG 01qH+2oN7+ueAV4IYX5KkxTYcg0KTDcdlJjy5yLR7G6bHgaXB+bGLzbfiFMq2y62sEEy Ak0daUnZ3hYOdccMO66DoGtDkJ5sPGys9FD3qXxaFrxDljaJfmHzj1JsDzrWvB/wmfcO CFDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=gvKoI8PMZzGI+SB60fJLf0VL2ZLdzN79PVHR+4htig8=; b=wJSqvPYU2cGoG/Ggje8n8x5O8BPu2BQFrES/Or6ye9nz1rJYSi6Vinf5vL38O2shWQ 3g6qx9irj+AJx4gvegzXh+S4sAW0k51bqqJflSUkv88KHksmVGJS0YKisfRjme/s9kU4 ajiP+W8pFM4L7OZKkPe/MCLW9baLxCYopLsawwWAEpQOkROYyVGWDO8r992bToaL/Sqx hNR3lRXcsoLrKIgkKfIJo68tYs0ELKY0amTWb4bbz/R26SorOlP4VNLf+E52YEuEIwer xKF5ynaiJGmHbdmbK7ae3RjSk6VO9Sq37fYVCrogsCT4IEApRQw8ZZccelDxm/qEOCFn A/ZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@footclan-ninja.20150623.gappssmtp.com header.s=20150623 header.b=s3iDJs3l; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i9si2788223edn.437.2020.06.18.11.36.26; Thu, 18 Jun 2020 11:36:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@footclan-ninja.20150623.gappssmtp.com header.s=20150623 header.b=s3iDJs3l; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731630AbgFRP4s (ORCPT + 99 others); Thu, 18 Jun 2020 11:56:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40556 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731615AbgFRP4s (ORCPT ); Thu, 18 Jun 2020 11:56:48 -0400 Received: from mail-pg1-x561.google.com (mail-pg1-x561.google.com [IPv6:2607:f8b0:4864:20::561]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 551DBC0613ED for ; Thu, 18 Jun 2020 08:56:47 -0700 (PDT) Received: by mail-pg1-x561.google.com with SMTP id u128so3074496pgu.13 for ; Thu, 18 Jun 2020 08:56:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=footclan-ninja.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=gvKoI8PMZzGI+SB60fJLf0VL2ZLdzN79PVHR+4htig8=; b=s3iDJs3leT+5hMurR0CCOMGi18ZAu4OuV5nCjuYJF3v6ZCb06x7Pm7EM1illjr/u9d 7wkWrvpPS+HhPjBj2ohIzW39xNw2DrQAp1n03STbFn55hXCf36iUbBtSh0TJbsI6whPm sIpdWt+Cty8Wb5NsWUZS3EGhChG33MJSC832lJoWN3hqo0jWjGyGhuc4ZgE1WxQrtmJT MeNCea0OdUgZlWlvUNCo/NsM3gc4jszRUDke/zdepiY+Y2FvFhDIGtFpQ1iavnc1+cFA jrQtM28vsvpoc9sNiWk5hzvjkx0t3qjgVC/qdzCT4opUkIpfVXikGO/jalrsTE8WJre6 w0ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=gvKoI8PMZzGI+SB60fJLf0VL2ZLdzN79PVHR+4htig8=; b=Jl6PR1oq+DDiA4ZZsG91Rs+mxmo0K08XlIqYT0Fm09fMccPL+HzNGFBeVibZqUBLOG 5vMne0Hc1shhij5MZPzrXHkpkOyfNo+0po8nalGcY3CHdvIroQgRfKTw7iDLRM0mscZM FrelymUux8vBMvVLGYYeEHuamvagdoi7/FiaGRnuW6g/YKWw4MA/ApMakL+tiJkMK6PW mABBrWSlnqutaDNlKl6sDR8MzBwr+gWzWAnBYn5TqynFMiubN17cNUHK10NHfbQkkCXr ecRhOjXuqfT+Eb7jAnFV8S49eUyr7NCd3WEob09HYFjzyomblCrTYdhIVybSEs6A1z39 g+xw== X-Gm-Message-State: AOAM530xvWwkNdNe1VVkK0Ld4Vk5FcJZWR169+7MwF2W+K9dfnImtq+a k4+1ygRzweuM8GIQpFalXdZ+9HGiVe6FYFLd05X9IUvWCR0tFw== X-Received: by 2002:a05:6a00:14d4:: with SMTP id w20mr4240127pfu.279.1592495805652; Thu, 18 Jun 2020 08:56:45 -0700 (PDT) Received: from localhost.localdomain ([49.195.72.212]) by smtp-relay.gmail.com with ESMTPS id y1sm355578pjy.0.2020.06.18.08.56.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jun 2020 08:56:45 -0700 (PDT) X-Relaying-Domain: footclan.ninja From: Matt Jolly To: Russell Currey , Sam Bobroff , "Oliver O'Halloran" , Bjorn Helgaas , linuxppc-dev@lists.ozlabs.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Matt Jolly Subject: [PATCH] pci: pcie: AER: Fix logging of Correctable errors Date: Fri, 19 Jun 2020 01:55:11 +1000 Message-Id: <20200618155511.16009-1-Kangie@footclan.ninja> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The AER documentation indicates that correctable (severity=Corrected) errors should be output as a warning so that users can filter these errors if they choose to; This functionality does not appear to have been implemented. This patch modifies the functions aer_print_error and __aer_print_error to send correctable errors as a warning (pci_warn), rather than as an error (pci_err). It partially addresses several bugs in relation to kernel message buffer spam for misbehaving devices - the root cause (possibly device firmware?) isn't addressed, but the dmesg output is less alarming for end users, and can be filtered separately from uncorrectable errors. This should hopefully reduce the need for users to disable AER to suppress corrected errors. Link: https://bugzilla.kernel.org/show_bug.cgi?id=201517 Link: https://bugzilla.kernel.org/show_bug.cgi?id=196183 Signed-off-by: Matt Jolly --- drivers/pci/pcie/aer.c | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c index 3acf56683915..131ecc0df2cb 100644 --- a/drivers/pci/pcie/aer.c +++ b/drivers/pci/pcie/aer.c @@ -662,12 +662,18 @@ static void __aer_print_error(struct pci_dev *dev, errmsg = i < ARRAY_SIZE(aer_uncorrectable_error_string) ? aer_uncorrectable_error_string[i] : NULL; - if (errmsg) - pci_err(dev, " [%2d] %-22s%s\n", i, errmsg, - info->first_error == i ? " (First)" : ""); - else + if (errmsg) { + if (info->severity == AER_CORRECTABLE) { + pci_warn(dev, " [%2d] %-22s%s\n", i, errmsg, + info->first_error == i ? " (First)" : ""); + } else { + pci_err(dev, " [%2d] %-22s%s\n", i, errmsg, + info->first_error == i ? " (First)" : ""); + } + } else { pci_err(dev, " [%2d] Unknown Error Bit%s\n", i, info->first_error == i ? " (First)" : ""); + } } pci_dev_aer_stats_incr(dev, info); } @@ -686,13 +692,23 @@ void aer_print_error(struct pci_dev *dev, struct aer_err_info *info) layer = AER_GET_LAYER_ERROR(info->severity, info->status); agent = AER_GET_AGENT(info->severity, info->status); - pci_err(dev, "PCIe Bus Error: severity=%s, type=%s, (%s)\n", - aer_error_severity_string[info->severity], - aer_error_layer[layer], aer_agent_string[agent]); + if (info->severity == AER_CORRECTABLE) { + pci_warn(dev, "PCIe Bus Error: severity=%s, type=%s, (%s)\n", + aer_error_severity_string[info->severity], + aer_error_layer[layer], aer_agent_string[agent]); - pci_err(dev, " device [%04x:%04x] error status/mask=%08x/%08x\n", - dev->vendor, dev->device, - info->status, info->mask); + pci_warn(dev, " device [%04x:%04x] error status/mask=%08x/%08x\n", + dev->vendor, dev->device, + info->status, info->mask); + } else { + pci_err(dev, "PCIe Bus Error: severity=%s, type=%s, (%s)\n", + aer_error_severity_string[info->severity], + aer_error_layer[layer], aer_agent_string[agent]); + + pci_err(dev, " device [%04x:%04x] error status/mask=%08x/%08x\n", + dev->vendor, dev->device, + info->status, info->mask); + } __aer_print_error(dev, info); -- 2.26.2