Received: by 10.192.165.148 with SMTP id m20csp3600907imm; Mon, 7 May 2018 15:23:39 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrbYud11Fs9vLvwUWRJyTAf28QyDJxoSmo6KHGrO5MfFz6BsvCWgbgVGR/PwJBIhHg4Acp1 X-Received: by 10.98.217.5 with SMTP id s5mr38050496pfg.20.1525731819626; Mon, 07 May 2018 15:23:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525731819; cv=none; d=google.com; s=arc-20160816; b=jQEgHWh340vINBv/WNCU+T8Vtg2x6JJueQLuqNKOUrbXY+TMhx/BmRC/z5OTEQdAlC GyGdHe35LsaqoiF6DP/Y68XSlax+T/04nkKiWyKw6uKMQjj64ukwItgriacd8DQrzuCe +mfpHe2R6xkt3z7iFQx+yR1/U673gp4Kis9To8+vDcg4sOj/1zR9k7SxwdQSQS7IuJNH MFb0oRZcNVRD5rOfnM+06FJXktzaN2zhoDMtfW1n58nNsnNDhm6Bcu6RnekoCwLsl7bv xk/s76+7Jau330utkaRH9u8gY4ZP+rrFdCmh1m5mYloRebL0c/9Rlo+fZn5JqCT6k3LQ 1wIQ== 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=kr0JwkdFWHcEFuF923guVtbFWkEdEZsrlHbNtgc7His=; b=lkga5ClqB97YcSyB6BpyKzsu9LImynWo31lnWIw09jnTHlX0TJjHqMn13d2HdNiWYx f7AE9UJExcLiUz9XFajEB43y7PBfnWoX4bPCCkfEWT1EZXzTo/PF8igWRB0pXM77TvXP k/mLXSH4R0QBAbM+mJWVfUIQN2opVk9cB5QTVeTgI5S5VuRzFyK5QCgZDGrv/vM06DJV nvhA6PtdklJVqyO6sdboUEex2XWfwV/q5uA+liVIbvfxFH1aZpcBCOMGdHf3neiXd7Wm yOvpcNM/MWU5I81dNpiZpZqsyPjZYQ/nFg1g2pUQU/IOt7fO0/jSkw6iVE6wkDTizhFg Urjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=p59b6JWs; 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 m9si17688380pfc.9.2018.05.07.15.23.25; Mon, 07 May 2018 15:23:39 -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=p59b6JWs; 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 S1753461AbeEGWWq (ORCPT + 99 others); Mon, 7 May 2018 18:22:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:43426 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753325AbeEGWVj (ORCPT ); Mon, 7 May 2018 18:21:39 -0400 Received: from localhost (unknown [69.71.5.252]) (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 5904120740; Mon, 7 May 2018 22:21:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1525731698; bh=CeSgpePKF9ILDTZTgh+EceuyiJsW5HY9mGDNpuggG1Y=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=p59b6JWsOD/NbkuZl5yuLUhe3u0i53JwPkTLl6uvCo5yA/F/Sb0+tSJw1K8XOS6Ug EM6I60eO0pWoApi1dM9JEdf3kNoExn21JSHX22osAZ4usj+i2+2Q859xjssuXGf9gY 5XmHrgpE2CCcQaTt1WCNIEzwkbblEfyUMGzhBtFY= Date: Mon, 7 May 2018 17:21:37 -0500 From: Bjorn Helgaas To: Thomas Tai Cc: bhelgaas@google.com, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Steven Rostedt , Alexandru Gagniuc Subject: Re: [PATCH] PCI/AER: add pcie TLP header information in the tracepoint Message-ID: <20180507222136.GD161390@bhelgaas-glaptop.roam.corp.google.com> References: <20180402154708.5032-1-thomas.tai@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180402154708.5032-1-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 [+cc Steve, Alex] On Mon, Apr 02, 2018 at 11:47:08AM -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. > > Example tracepoint output: > 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 I tentatively applied this to pci/aer for v4.18, thanks! Steve, let me know if you have any comments. Alex, I just copied you because you've been unifying the AER native and CPER paths, and this is another case of code that appears in both paths. FYI only, no action required :) > --- > drivers/pci/pcie/aer/aerdrv_errprint.c | 4 ++-- > include/ras/ras_event.h | 20 ++++++++++++++++---- > 2 files changed, 18 insertions(+), 6 deletions(-) > > diff --git a/drivers/pci/pcie/aer/aerdrv_errprint.c b/drivers/pci/pcie/aer/aerdrv_errprint.c > index 6a352e638699..0a78a773bd25 100644 > --- a/drivers/pci/pcie/aer/aerdrv_errprint.c > +++ b/drivers/pci/pcie/aer/aerdrv_errprint.c > @@ -192,7 +192,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) > @@ -252,6 +252,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 9c689868eb4d..90f59556f595 100644 > --- a/include/ras/ras_event.h > +++ b/include/ras/ras_event.h > @@ -298,30 +298,42 @@ TRACE_EVENT(non_standard_event, > TRACE_EVENT(aer_event, > TP_PROTO(const char *dev_name, > const u32 status, > - const u8 severity), > + const u8 severity, > + const u32 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( u32, tlp_header_valid) > + __array( u32, buf, 4 ) > ), > > TP_fast_assign( > __assign_str(dev_name, dev_name); > __entry->status = status; > __entry->severity = severity; > + __entry->tlp_header_valid = tlp_header_valid; > + __entry->buf[0] = tlp->dw0; > + __entry->buf[1] = tlp->dw1; > + __entry->buf[2] = tlp->dw2; > + __entry->buf[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->buf, 4, sizeof(unsigned int)) : > + "Not available") > ); > > /* > -- > 2.14.1 >