Received: by 10.192.165.148 with SMTP id m20csp4768654imm; Tue, 8 May 2018 14:08:26 -0700 (PDT) X-Google-Smtp-Source: AB8JxZq0IiYJzw3XDAhW5m3ysf0D/OK7Hn7IYUaHbEpsPkKk+/fVNbamh+5PxEnpq/gsuZjPNB6F X-Received: by 2002:a17:902:b589:: with SMTP id a9-v6mr4559247pls.161.1525813706565; Tue, 08 May 2018 14:08:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525813706; cv=none; d=google.com; s=arc-20160816; b=ue083rGcLpZ5s/Rj3fKbHJD/GwX0N+X/BkVWtTw1YK8OeLcRpaqwDfmN4IlOLWTW/3 PdZQs9w0HMLPvaIK+WZqEacii47kIoHMbuyDMpAmriEN/L5Rpa84sEjVM6puji+9+Hy6 fWJPBZDbQL9zD2v2UXah7x70NbwpB6To//O9jF+uCxGG59INIMO1c3eYIBpNq3XD9I0x C9itiu1vLyfj+IXRXBLNfBowz7JWPqr/itxnz+8ONdLDF4VrbbI2k/GL+APM/jeTcxxC gI68P7FRUS1NBLxpfcgNTTab22Lx/DMFY90KyBg5WksCXU/jaV5loX/vTJ7z6uDrn3sJ oYxw== 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 :references:in-reply-to:message-id:subject:cc:to:from:date :arc-authentication-results; bh=45XxEZYOhcxNafdIKbhuhYurBU6AA+kyJdm7LaorEr0=; b=BmtutzbewtvBJK4WFfGW4DfDeKVrbXQCGGZWzeZTuKs9XjZM2rgFhNMoMBVho/R/CF FWP/lE/S7cfX9D5M4+vnMozpgVoHNRPROMVCETCOetbOjSrY4yCwsJ8mSb4+qwiUttZ3 5eT45I3QRuHXfBPjeMAYOA8VcGaljodJcUS8H29QhcM10sW97FonPXFBYz1eWTDt5CDS +iFIEaEW+vT1jyfcVljNHpe+beUKUy9Aip9Ad3m7nFHNHYuMoTmCZ5gz++xuevu+CnPr cobTZU9bdj1sFJh0cPCTSE1hR9q24ZBMbbWL/k19LDCuosL66Dv6ft5vuZzSc9Y4oS8S KpNA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h9-v6si20486840pgr.342.2018.05.08.14.08.12; Tue, 08 May 2018 14:08:26 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755858AbeEHVHn (ORCPT + 99 others); Tue, 8 May 2018 17:07:43 -0400 Received: from mail.kernel.org ([198.145.29.99]:54942 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751533AbeEHVHm (ORCPT ); Tue, 8 May 2018 17:07:42 -0400 Received: from gandalf.local.home (cpe-66-24-56-78.stny.res.rr.com [66.24.56.78]) (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 4FA6320740; Tue, 8 May 2018 21:07:41 +0000 (UTC) Date: Tue, 8 May 2018 17:07:39 -0400 From: Steven Rostedt To: Thomas Tai Cc: bhelgaas@google.com, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, mr.nuke.me@gmail.com Subject: Re: [PATCH V2] PCI/AER: add pcie TLP header information in the tracepoint Message-ID: <20180508170739.1436c873@gandalf.local.home> In-Reply-To: <1525809420-30576-2-git-send-email-thomas.tai@oracle.com> References: <1525809420-30576-1-git-send-email-thomas.tai@oracle.com> <1525809420-30576-2-git-send-email-thomas.tai@oracle.com> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 8 May 2018 15:57:00 -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 > --- > 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..f73b168 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 (__entry->tlp_header_valid) { Although the compiler will probably optimize it anyway, but you probably should have it be: if (tlp_header_valid) { because why add the extra dereference. > + __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") The rest looks fine to me. -- Steve > ); > > /*