Received: by 10.192.165.148 with SMTP id m20csp1161776imm; Thu, 10 May 2018 06:38:46 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqJmVUrehhRhh+T5ChPVBAxRbkXrvvFAjI2D1ZtVa+14HMCLiLHDvd70TGsCH2eeAWSZX9e X-Received: by 2002:a63:2bc4:: with SMTP id r187-v6mr1186433pgr.231.1525959526030; Thu, 10 May 2018 06:38:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525959525; cv=none; d=google.com; s=arc-20160816; b=0aR8R9vA4P1VJiABbOfKlGdkPl06BUArUaT/NbNEjyZH1W4Vv//s7SCXa4maZRfM3g iVgUWm6Rn/VVZJccH6MiTkBHLIzfcRbidM9nEajM8+W9//4MLEjnLmxyThQc+d1i8OEM X55+rYritgYXmpDT7T/WGeGkvpTo9oQB+DMMhh8wqy4YQNhvlj2A/O/P7N15wCF26r+2 62RwKOz8Aq6D0bkKhFiAUc7kj+eMUE3lxpiCy+ZLJ5etrgStbCbs9qSRHeg8F9VN19mF +Sh0uTqpb8gm8Ojp/1+zO51M8UsDeOnIOM6It0Cw4tdFUciJTGT4Bk/KMITNfZG13f1r qvtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=502SS3UYM4qD2iraWmlT06sdXIzOFFL3yphS4jk6FVw=; b=usqujMxe2xV3RmaDt/sovPJj8Xaj+bYiKrWNcza4ajUhhPO+D9xCVWaPd/aiVdYtf8 bfKpkO45rVxPUmM0qCX4OzJ6K6keoS+IsJkf/3EYbQWFdMHB2hpz8evvNut+J7lkz8Sk 7qOrBTjeRNsK9SJ12f4kTHhjSVLyX31EiqRKAMHBoTl3Lxg6Dgu/IIi5JtH8FVBOjSg9 S73sEdpH3kq5epUbsUILxiWSl8aySN1bEhupRvUTU7vqwQDWAMgiykGo+FjinQo4k18i BlzCktN7hOu0UGC3kZBvpU+B0R0U+vggx/s7a20FS5/5PCE8TQ97qq64+xIYA8WUGRKL KV7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Lh6l+SJg; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x12-v6si692663pgv.389.2018.05.10.06.38.31; Thu, 10 May 2018 06:38:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Lh6l+SJg; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965141AbeEJNhn (ORCPT + 99 others); Thu, 10 May 2018 09:37:43 -0400 Received: from mail.kernel.org ([198.145.29.99]:55794 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935499AbeEJNhl (ORCPT ); Thu, 10 May 2018 09:37:41 -0400 Received: from localhost (50-81-62-164.client.mchsi.com [50.81.62.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0A35121784; Thu, 10 May 2018 13:37:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1525959461; bh=juM+IGE+PKQdPqtPXACKSisBojEuRnET9M92o1jH47E=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Lh6l+SJgERjRCg3XFIXh9RP+FJA1C+gm7t2eN1o2u/KKCcxU5WYwMIcm21xv8M19j nrbIbaL6P55G2I2WUK/SpM8CYpA2VYQqDD13mo3TXZrMKP5Zqj2TU5QFxAT1ppbcNT ZXF3hbf4GzkR/UMgU8I12idjK0tj/l4HEdobMGs8= Date: Thu, 10 May 2018 08:37:39 -0500 From: Bjorn Helgaas To: Thomas Tai Cc: bhelgaas@google.com, rostedt@goodmis.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, mr.nuke.me@gmail.com Subject: Re: [PATCH V3 1/1] PCI/AER: add pcie TLP header information in the tracepoint Message-ID: <20180510133739.GI173327@bhelgaas-glaptop.roam.corp.google.com> References: <1525820696-31967-1-git-send-email-thomas.tai@oracle.com> <1525820696-31967-2-git-send-email-thomas.tai@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1525820696-31967-2-git-send-email-thomas.tai@oracle.com> User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 08, 2018 at 07:04:56PM -0400, Thomas Tai wrote: > When a PCIe AER occurs, the TLP header information is > printed in the kernel message but it is missing from > the tracepoint. A userspace program can use this information > in the tracepoint to better analyze problems. > > To enable the tracepoint: > echo 1 > /sys/kernel/debug/tracing/events/ras/aer_event/enable > > Example tracepoint output: > cat /sys/kernel/debug/tracing/trace > aer_event: 0000:01:00.0 > PCIe Bus Error: severity=Uncorrected, non-fatal, Completer Abort > TLP Header={0x0,0x1,0x2,0x3} > > Signed-off-by: Thomas Tai Applied with Steven's reviewed-by to pci/aer for v4.18, thanks! > --- > drivers/pci/pcie/aer/aerdrv_errprint.c | 4 ++-- > include/ras/ras_event.h | 22 ++++++++++++++++++---- > 2 files changed, 20 insertions(+), 6 deletions(-) > > diff --git a/drivers/pci/pcie/aer/aerdrv_errprint.c b/drivers/pci/pcie/aer/aerdrv_errprint.c > index cfc89dd..fd49a8d 100644 > --- a/drivers/pci/pcie/aer/aerdrv_errprint.c > +++ b/drivers/pci/pcie/aer/aerdrv_errprint.c > @@ -189,7 +189,7 @@ void aer_print_error(struct pci_dev *dev, struct aer_err_info *info) > pci_err(dev, " Error of this Agent(%04x) is reported first\n", id); > > trace_aer_event(dev_name(&dev->dev), (info->status & ~info->mask), > - info->severity); > + info->severity, info->tlp_header_valid, &info->tlp); > } > > void aer_print_port_info(struct pci_dev *dev, struct aer_err_info *info) > @@ -249,6 +249,6 @@ void cper_print_aer(struct pci_dev *dev, int aer_severity, > __print_tlp_header(dev, &aer->header_log); > > trace_aer_event(dev_name(&dev->dev), (status & ~mask), > - aer_severity); > + aer_severity, tlp_header_valid, &aer->header_log); > } > #endif > diff --git a/include/ras/ras_event.h b/include/ras/ras_event.h > index 9c68986..a079463 100644 > --- a/include/ras/ras_event.h > +++ b/include/ras/ras_event.h > @@ -298,30 +298,44 @@ > TRACE_EVENT(aer_event, > TP_PROTO(const char *dev_name, > const u32 status, > - const u8 severity), > + const u8 severity, > + const u8 tlp_header_valid, > + struct aer_header_log_regs *tlp), > > - TP_ARGS(dev_name, status, severity), > + TP_ARGS(dev_name, status, severity, tlp_header_valid, tlp), > > TP_STRUCT__entry( > __string( dev_name, dev_name ) > __field( u32, status ) > __field( u8, severity ) > + __field( u8, tlp_header_valid) > + __array( u32, tlp_header, 4 ) > ), > > TP_fast_assign( > __assign_str(dev_name, dev_name); > __entry->status = status; > __entry->severity = severity; > + __entry->tlp_header_valid = tlp_header_valid; > + if (tlp_header_valid) { > + __entry->tlp_header[0] = tlp->dw0; > + __entry->tlp_header[1] = tlp->dw1; > + __entry->tlp_header[2] = tlp->dw2; > + __entry->tlp_header[3] = tlp->dw3; > + } > ), > > - TP_printk("%s PCIe Bus Error: severity=%s, %s\n", > + TP_printk("%s PCIe Bus Error: severity=%s, %s, TLP Header=%s\n", > __get_str(dev_name), > __entry->severity == AER_CORRECTABLE ? "Corrected" : > __entry->severity == AER_FATAL ? > "Fatal" : "Uncorrected, non-fatal", > __entry->severity == AER_CORRECTABLE ? > __print_flags(__entry->status, "|", aer_correctable_errors) : > - __print_flags(__entry->status, "|", aer_uncorrectable_errors)) > + __print_flags(__entry->status, "|", aer_uncorrectable_errors), > + __entry->tlp_header_valid ? > + __print_array(__entry->tlp_header, 4, 4) : > + "Not available") > ); > > /* > -- > 1.8.3.1 >