linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Serge Semin <fancer.lancer@gmail.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Zhuo Chen <chenzhuo.1@bytedance.com>,
	sathyanarayanan.kuppuswamy@linux.intel.com, bhelgaas@google.com,
	ruscur@russell.cc, oohall@gmail.com, jdmason@kudzu.us,
	dave.jiang@intel.com, allenbh@gmail.com,
	james.smart@broadcom.com, dick.kennedy@broadcom.com,
	jejb@linux.ibm.com, martin.petersen@oracle.com,
	linuxppc-dev@lists.ozlabs.org, linux-pci@vger.kernel.org,
	linux-kernel@vger.kernel.org, ntb@lists.linux.dev,
	linux-scsi@vger.kernel.org
Subject: Re: [PATCH v3 3/9] NTB: Remove pci_aer_clear_nonfatal_status() call
Date: Wed, 7 Dec 2022 00:41:03 +0300	[thread overview]
Message-ID: <20221206214103.77duscgqjifsktxo@mobilestation> (raw)
In-Reply-To: <20221206180956.GA1361309@bhelgaas>

Hi Bjorn

On Tue, Dec 06, 2022 at 12:09:56PM -0600, Bjorn Helgaas wrote:
> On Wed, Sep 28, 2022 at 02:03:55PM +0300, Serge Semin wrote:
> > On Wed, Sep 28, 2022 at 06:59:40PM +0800, Zhuo Chen wrote:
> > > There is no need to clear error status during init code, so remove it.
> > 
> > Why do you think there isn't? Justify in more details.
> 
> Thanks for taking a look, Sergey!  I agree we should leave it or add
> the rationale here.
> 
> > > Signed-off-by: Zhuo Chen <chenzhuo.1@bytedance.com>
> > > ---
> > >  drivers/ntb/hw/idt/ntb_hw_idt.c | 2 --
> > >  1 file changed, 2 deletions(-)
> > > 
> > > diff --git a/drivers/ntb/hw/idt/ntb_hw_idt.c b/drivers/ntb/hw/idt/ntb_hw_idt.c
> > > index 0ed6f809ff2e..fed03217289d 100644
> > > --- a/drivers/ntb/hw/idt/ntb_hw_idt.c
> > > +++ b/drivers/ntb/hw/idt/ntb_hw_idt.c
> > > @@ -2657,8 +2657,6 @@ static int idt_init_pci(struct idt_ntb_dev *ndev)
> > >  	ret = pci_enable_pcie_error_reporting(pdev);
> > >  	if (ret != 0)
> > >  		dev_warn(&pdev->dev, "PCIe AER capability disabled\n");
> > > -	else /* Cleanup nonfatal error status before getting to init */
> > > -		pci_aer_clear_nonfatal_status(pdev);
> 
> I do think drivers should not need to clear errors; I think the PCI
> core should be responsible for that.
> 
> And I think the core *does* do that in this path:
> 
>   pci_init_capabilities
>     pci_aer_init
>       pci_aer_clear_status
>         pci_aer_raw_clear_status
>           pci_write_config_dword(pdev, aer + PCI_ERR_COR_STATUS)
>           pci_write_config_dword(pdev, aer + PCI_ERR_UNCOR_STATUS)
> 
> pci_aer_clear_nonfatal_status() clears only non-fatal uncorrectable
> errors, while pci_aer_init() clears all correctable and all
> uncorrectable errors, so the PCI core is already doing more than
> idt_init_pci() does.
> 
> So I think this change is good because it removes some work from the
> driver, but let me know if you think otherwise.

It's hard to remember now all the details but IIRC back when this
driver was developed the "Unsupported Request" flag was left uncleared
on our platform even after the probe completion. Most likely an
erroneous TLP was generated by some action performed on the device
probe stage. The forced cleanup of the AER status solved that problem.
On the other hand the problem of having the UnsupReq+ flag set was
solved some time after the driver was merged in into the kernel (it
was caused by a vendor-specific behavior of the IDT PCIe switch placed
on the path between a RP and PCIe NTB). So since the original reason
of having the pci_aer_clear_nonfatal_status() method called here was
platform specific and fixed now anyway, and the AER flags cleanup is
done by the core, then I have no reason to be against the patch. It
would be good to add your clarification to the commit message though.

Reviewed-by: Serge Semin <fancer.lancer@gmail.com>

-Serge(y)

> 
> > >  
> > >  	/* First enable the PCI device */
> > >  	ret = pcim_enable_device(pdev);
> > > -- 
> > > 2.30.1 (Apple Git-130)
> > > 

  reply	other threads:[~2022-12-06 21:41 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-28 10:59 [PATCH v3 0/9] PCI/AER: Fix and optimize usage of status clearing api Zhuo Chen
2022-09-28 10:59 ` [PATCH v3 1/9] PCI/AER: Add pci_aer_clear_uncorrect_error_status() to PCI core Zhuo Chen
2023-03-15 21:29   ` Bjorn Helgaas
2022-09-28 10:59 ` [PATCH v3 2/9] PCI/DPC: Use pci_aer_clear_uncorrect_error_status() to clear uncorrectable error status Zhuo Chen
2022-09-28 10:59 ` [PATCH v3 3/9] NTB: Remove pci_aer_clear_nonfatal_status() call Zhuo Chen
2022-09-28 11:03   ` Serge Semin
2022-12-06 18:09     ` Bjorn Helgaas
2022-12-06 21:41       ` Serge Semin [this message]
2023-03-15 21:31   ` Bjorn Helgaas
2022-09-28 10:59 ` [PATCH v3 4/9] scsi: lpfc: Change to use pci_aer_clear_uncorrect_error_status() Zhuo Chen
2022-12-06 22:13   ` Bjorn Helgaas
2023-03-15 21:35     ` Bjorn Helgaas
2023-03-30 23:43       ` Justin Tee
2022-09-28 10:59 ` [PATCH v3 5/9] PCI/AER: Unexport pci_aer_clear_nonfatal_status() Zhuo Chen
2022-09-28 10:59 ` [PATCH v3 6/9] PCI/AER: Move check inside pcie_clear_device_status() Zhuo Chen
2022-09-28 10:59 ` [PATCH v3 7/9] PCI/AER: Use pcie_aer_is_native() to judge whether OS owns AER Zhuo Chen
2022-09-28 10:59 ` [PATCH v3 8/9] PCI/ERR: Clear fatal error status when pci_channel_io_frozen Zhuo Chen
2022-12-06 21:42   ` Bjorn Helgaas
2022-09-28 10:59 ` [PATCH v3 9/9] PCI/AER: Refine status clearing process with api Zhuo Chen
2022-09-28 11:06 ` [PATCH v3 0/9] PCI/AER: Fix and optimize usage of status clearing api Serge Semin
2022-09-28 15:54   ` [External] " Zhuo Chen
2022-11-04 17:20 ` Zhuo Chen
2022-11-24 11:55   ` Zhuo Chen

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=20221206214103.77duscgqjifsktxo@mobilestation \
    --to=fancer.lancer@gmail.com \
    --cc=allenbh@gmail.com \
    --cc=bhelgaas@google.com \
    --cc=chenzhuo.1@bytedance.com \
    --cc=dave.jiang@intel.com \
    --cc=dick.kennedy@broadcom.com \
    --cc=helgaas@kernel.org \
    --cc=james.smart@broadcom.com \
    --cc=jdmason@kudzu.us \
    --cc=jejb@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=martin.petersen@oracle.com \
    --cc=ntb@lists.linux.dev \
    --cc=oohall@gmail.com \
    --cc=ruscur@russell.cc \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.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;
as well as URLs for NNTP newsgroup(s).