From: Jes Sorensen <jsorensen@fb.com>
To: Rajat Jain <rajatja@google.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Jonathan Corbet <corbet@lwn.net>,
Philippe Ombredanne <pombredanne@nexb.com>,
Kate Stewart <kstewart@linuxfoundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Frederick Lawler <fred@fredlawl.com>,
Oza Pawandeep <poza@codeaurora.org>,
Keith Busch <keith.busch@intel.com>,
Gabriele Paoloni <gabriele.paoloni@huawei.com>,
Alexandru Gagniuc <mr.nuke.me@gmail.com>,
Thomas Tai <thomas.tai@oracle.com>,
"Steven Rostedt (VMware)" <rostedt@goodmis.org>,
<linux-pci@vger.kernel.org>, <linux-doc@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, Kyle McMartin <jkkm@fb.com>
Cc: <rajatxjain@gmail.com>
Subject: Re: [PATCH 1/5] PCI/AER: Define and allocate aer_stats structure for AER capable devices
Date: Wed, 23 May 2018 10:20:10 -0400 [thread overview]
Message-ID: <62fae8eb-aaed-65b2-19ad-7c57b3a9bfdc@fb.com> (raw)
In-Reply-To: <20180522222805.80314-2-rajatja@google.com>
On 05/22/2018 06:28 PM, Rajat Jain wrote:
> Define a structure to hold the AER statistics. There are 2 groups
> of statistics: dev_* counters that are to be collected for all AER
> capable devices and rootport_* counters that are collected for all
> (AER capable) rootports only. Allocate and free this structure when
> device is added or released (thus counters survive the lifetime of the
> device).
>
> Add a new file aerdrv_stats.c to hold the AER stats collection logic.
>
> Signed-off-by: Rajat Jain <rajatja@google.com>
> ---
> drivers/pci/pcie/aer/Makefile | 2 +-
> drivers/pci/pcie/aer/aerdrv.h | 6 +++
> drivers/pci/pcie/aer/aerdrv_core.c | 9 ++++
> drivers/pci/pcie/aer/aerdrv_stats.c | 64 +++++++++++++++++++++++++++++
> drivers/pci/probe.c | 1 +
> include/linux/pci.h | 3 ++
> 6 files changed, 84 insertions(+), 1 deletion(-)
> create mode 100644 drivers/pci/pcie/aer/aerdrv_stats.c
>
> diff --git a/drivers/pci/pcie/aer/Makefile b/drivers/pci/pcie/aer/Makefile
>
> -aerdriver-objs := aerdrv_errprint.o aerdrv_core.o aerdrv.o
> +aerdriver-objs := aerdrv_errprint.o aerdrv_core.o aerdrv.o aerdrv_stats.o
> aerdriver-$(CONFIG_ACPI) += aerdrv_acpi.o
>
> obj-$(CONFIG_PCIEAER_INJECT) += aer_inject.o
> diff --git a/drivers/pci/pcie/aer/aerdrv.h b/drivers/pci/pcie/aer/aerdrv.h
> index b4c950683cc7..d8b9fba536ed 100644
> --- a/drivers/pci/pcie/aer/aerdrv.h
> +++ b/drivers/pci/pcie/aer/aerdrv.h
> @@ -33,6 +33,10 @@
> PCI_ERR_UNC_MALF_TLP)
>
> #define AER_MAX_MULTI_ERR_DEVICES 5 /* Not likely to have more */
> +
> +#define AER_MAX_TYPEOF_CORRECTABLE_ERRS 16 /* as per PCI_ERR_COR_STATUS */
> +#define AER_MAX_TYPEOF_UNCORRECTABLE_ERRS 26 /* as per PCI_ERR_UNCOR_STATUS*/
> +
> struct aer_err_info {
> struct pci_dev *dev[AER_MAX_MULTI_ERR_DEVICES];
> int error_dev_num;
> @@ -81,6 +85,8 @@ void aer_isr(struct work_struct *work);
> void aer_print_error(struct pci_dev *dev, struct aer_err_info *info);
> void aer_print_port_info(struct pci_dev *dev, struct aer_err_info *info);
> irqreturn_t aer_irq(int irq, void *context);
> +int pci_aer_stats_init(struct pci_dev *pdev);
> +void pci_aer_stats_exit(struct pci_dev *pdev);
>
> #ifdef CONFIG_ACPI_APEI
> int pcie_aer_get_firmware_first(struct pci_dev *pci_dev);
> diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c
> index 36e622d35c48..42a6f913069a 100644
> --- a/drivers/pci/pcie/aer/aerdrv_core.c
> +++ b/drivers/pci/pcie/aer/aerdrv_core.c
> @@ -95,9 +95,18 @@ int pci_cleanup_aer_error_status_regs(struct pci_dev *dev)
> int pci_aer_init(struct pci_dev *dev)
> {
> dev->aer_cap = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ERR);
> +
> + if (!dev->aer_cap || pci_aer_stats_init(dev))
> + return -EIO;
> +
> return pci_cleanup_aer_error_status_regs(dev);
> }
>
> +void pci_aer_exit(struct pci_dev *dev)
> +{
> + pci_aer_stats_exit(dev);
> +}
> +
> /**
> * add_error_device - list device to be handled
> * @e_info: pointer to error info
> diff --git a/drivers/pci/pcie/aer/aerdrv_stats.c b/drivers/pci/pcie/aer/aerdrv_stats.c
> new file mode 100644
> index 000000000000..b9f251992209
> --- /dev/null
> +++ b/drivers/pci/pcie/aer/aerdrv_stats.c
> @@ -0,0 +1,64 @@
> +// SPDX-License-Identifier: GPL-2.0
Fix the formatting please - that gross // gibberish doesn't belong there.
Jes
next prev parent reply other threads:[~2018-05-23 14:20 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-22 22:28 [PATCH 0/5] Expose PCIe AER stats via sysfs Rajat Jain
2018-05-22 22:28 ` [PATCH 1/5] PCI/AER: Define and allocate aer_stats structure for AER capable devices Rajat Jain
2018-05-23 8:27 ` Greg Kroah-Hartman
2018-05-23 14:20 ` Jes Sorensen [this message]
2018-05-23 14:26 ` Alex G.
2018-05-23 14:28 ` Jes Sorensen
2018-05-23 14:26 ` Matthew Wilcox
2018-05-23 14:32 ` Jes Sorensen
2018-05-23 14:33 ` Alex G.
2018-05-23 14:46 ` Steven Rostedt
2018-05-22 22:28 ` [PATCH 2/5] PCI/AER: Add sysfs stats " Rajat Jain
2018-05-22 22:50 ` Alex G.
2018-05-22 23:27 ` Rajat Jain
2018-05-22 23:30 ` Sinan Kaya
2018-05-23 8:22 ` Greg Kroah-Hartman
2018-05-23 8:24 ` Greg Kroah-Hartman
2018-05-22 22:28 ` [PATCH 3/5] PCP/AER: Add sysfs attributes to provide breakdown of AERs Rajat Jain
2018-05-23 8:25 ` Greg Kroah-Hartman
2018-05-22 22:28 ` [PATCH 4/5] PCI/AER: Add sysfs attributes for rootport cumulative stats Rajat Jain
2018-05-22 22:28 ` [PATCH 5/5] Documentation/PCI: Add details of PCI AER statistics Rajat Jain
2018-05-22 22:52 ` Alex G.
2018-05-22 23:18 ` Rajat Jain
2018-05-23 8:23 ` Greg Kroah-Hartman
2018-05-23 17:58 ` [PATCH v2 0/5] Expose PCIe AER stats via sysfs Rajat Jain
2018-05-23 17:58 ` [PATCH v2 1/5] PCI/AER: Define and allocate aer_stats structure for AER capable devices Rajat Jain
2018-05-24 6:08 ` Greg Kroah-Hartman
2018-05-23 17:58 ` [PATCH v2 2/5] PCI/AER: Add sysfs stats " Rajat Jain
2018-05-23 17:58 ` [PATCH v2 3/5] PCI/AER: Add sysfs attributes to provide breakdown of AERs Rajat Jain
2018-05-23 17:58 ` [PATCH v2 4/5] PCI/AER: Add sysfs attributes for rootport cumulative stats Rajat Jain
2018-05-23 17:58 ` [PATCH v2 5/5] Documentation/ABI: Add details of PCI AER statistics Rajat Jain
2018-06-17 5:24 ` poza
2018-06-19 0:11 ` Rajat Jain
2018-06-19 0:32 ` Rajat Jain
2018-06-19 6:03 ` poza
2018-06-19 16:31 ` Rajat Jain
2018-06-21 9:19 ` poza
2018-06-22 0:45 ` Rajat Jain
2018-06-19 22:16 ` [PATCH v2 0/5] Expose PCIe AER stats via sysfs Bjorn Helgaas
2018-06-19 22:17 ` Rajat Jain
2018-06-19 22:20 ` Alex G.
2018-06-19 22:25 ` Steven Rostedt
2018-06-19 22:29 ` Alex G.
2018-06-20 1:12 ` [PATCH v3 1/5] PCI/AER: Define and allocate aer_stats structure for AER capable devices Rajat Jain
2018-06-20 1:12 ` [PATCH v3 2/5] PCI/AER: Add sysfs stats " Rajat Jain
2018-06-20 1:12 ` [PATCH v3 3/5] PCI/AER: Add sysfs attributes to provide breakdown of AERs Rajat Jain
2018-06-20 1:12 ` [PATCH v3 4/5] PCI/AER: Add sysfs attributes for rootport cumulative stats Rajat Jain
2018-06-20 3:13 ` kbuild test robot
2018-06-20 1:12 ` [PATCH v3 5/5] Documentation/ABI: Add details of PCI AER statistics Rajat Jain
2018-06-20 23:28 ` [PATCH v4 1/5] PCI/AER: Define and allocate aer_stats structure for AER capable devices Rajat Jain
2018-06-20 23:28 ` [PATCH v4 2/5] PCI/AER: Add sysfs stats " Rajat Jain
2018-06-20 23:41 ` [PATCH v5 1/5] PCI/AER: Define and allocate aer_stats structure " Rajat Jain
2018-06-20 23:41 ` [PATCH v5 2/5] PCI/AER: Add sysfs stats " Rajat Jain
2018-06-20 23:41 ` [PATCH v5 3/5] PCI/AER: Add sysfs attributes to provide breakdown of AERs Rajat Jain
2018-06-21 18:48 ` Bjorn Helgaas
2018-06-21 21:25 ` Rajat Jain
2018-06-22 16:38 ` Tyler Baicar
2018-06-22 17:27 ` Bjorn Helgaas
2018-06-20 23:41 ` [PATCH v5 4/5] PCI/AER: Add sysfs attributes for rootport cumulative stats Rajat Jain
2018-06-20 23:41 ` [PATCH v5 5/5] Documentation/ABI: Add details of PCI AER statistics Rajat Jain
2018-06-21 13:17 ` [PATCH v5 1/5] PCI/AER: Define and allocate aer_stats structure for AER capable devices Bjorn Helgaas
2018-06-21 20:41 ` Rajat Jain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=62fae8eb-aaed-65b2-19ad-7c57b3a9bfdc@fb.com \
--to=jsorensen@fb.com \
--cc=bhelgaas@google.com \
--cc=corbet@lwn.net \
--cc=fred@fredlawl.com \
--cc=gabriele.paoloni@huawei.com \
--cc=gregkh@linuxfoundation.org \
--cc=jkkm@fb.com \
--cc=keith.busch@intel.com \
--cc=kstewart@linuxfoundation.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mr.nuke.me@gmail.com \
--cc=pombredanne@nexb.com \
--cc=poza@codeaurora.org \
--cc=rajatja@google.com \
--cc=rajatxjain@gmail.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=thomas.tai@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®