From: Lukas Wunner <lukas@wunner.de>
To: Vidya Sagar <vidyas@nvidia.com>
Cc: bhelgaas@google.com, alex.williamson@redhat.com,
treding@nvidia.com, jonathanh@nvidia.com,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
vsethi@nvidia.com, kthota@nvidia.com, mmaddireddy@nvidia.com,
sagar.tv@gmail.com
Subject: Re: [PATCH V3] PCI: pciehp: Disable ACS Source Validation during hot-remove
Date: Mon, 8 Jan 2024 15:19:01 +0100 [thread overview]
Message-ID: <20240108141901.GA17779@wunner.de> (raw)
In-Reply-To: <f7324ca4-2c57-459c-a9e8-aac09ba65e87@nvidia.com>
On Thu, Jan 04, 2024 at 08:01:06PM +0530, Vidya Sagar wrote:
> On 8/1/2023 1:29 AM, Lukas Wunner wrote:
> > As an alternative to disabling ACS, have you explored masking ACS
> > Violations (PCI_ERR_UNC_ACSV) upon de-enumeration of a device and
> > unmasking them after assignment of a bus number?
>
> I explored this option and it seemed to work as expected. But, the issue
> is that this works only if the AER registers are owned by the OS. If the
> AER registers are owned by the firmware (i.e. Firmware-First approach of
> handling the errors), OS is not supposed to access the AER registers and
> there is no indication from the OS to the firmware as to when the
> enumeration is completed and time is apt to unmask the ACSViolation
> errors in the AER's Uncorrectable Error Mask register.
> Any thoughts on accommodating the Firmware-First approach also?
Are you actually using firmware-controlled AER or is it a theoretical
question?
PCI Firmware Spec r3.3 sec 4.6.12 talks about a _DSM to disable DPC
on surprise-hotplug-capable ports. Maybe that would be an option?
BTW what happens if the system resumes from sleep and a device in
a hotplug-capable port doesn't have a bus number configured yet
(because it's been powered off and is now in D0uninitialized state)?
Could the ACS Violations then occur as well? Do we have to mask
ACS Violations *generally* on Root Ports and Downstream Ports when
going to system sleep and unmask them after setting a bus number
in the attached device on resume? And I suppose that would not
only be necessary for hotplug ports?
Thanks,
Lukas
next prev parent reply other threads:[~2024-01-08 14:19 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-11 14:52 [PATCH V1] PCI: pciehp: Disable ACS Source Validation during hot-remove Vidya Sagar
2023-01-11 17:11 ` kernel test robot
2023-01-11 17:11 ` kernel test robot
2023-01-11 19:05 ` [PATCH V2] " Vidya Sagar
2023-02-14 23:30 ` Bjorn Helgaas
2023-07-30 19:14 ` Vidya Sagar
2023-07-30 19:15 ` [PATCH V3] " Vidya Sagar
2023-07-30 19:40 ` Lukas Wunner
2023-07-30 20:02 ` Vidya Sagar
2023-07-31 19:59 ` Lukas Wunner
2023-08-02 0:19 ` Dan Williams
2024-01-04 14:31 ` Vidya Sagar
2024-01-08 14:19 ` Lukas Wunner [this message]
2024-01-11 13:44 ` Vidya Sagar
2024-01-18 2:27 ` Vidya Sagar
2024-01-18 10:33 ` Lukas Wunner
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=20240108141901.GA17779@wunner.de \
--to=lukas@wunner.de \
--cc=alex.williamson@redhat.com \
--cc=bhelgaas@google.com \
--cc=jonathanh@nvidia.com \
--cc=kthota@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mmaddireddy@nvidia.com \
--cc=sagar.tv@gmail.com \
--cc=treding@nvidia.com \
--cc=vidyas@nvidia.com \
--cc=vsethi@nvidia.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.