From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: linux-pci@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Lukas Wunner" <lukas@wunner.de>,
"Tony Nguyen" <anthony.l.nguyen@intel.com>,
"Przemek Kitszel" <przemyslaw.kitszel@intel.com>,
"Andrew Lunn" <andrew+netdev@lunn.ch>,
"David S . Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@google.com>,
"Paolo Abeni" <pabeni@redhat.com>,
"Saeed Mahameed" <saeedm@nvidia.com>,
"Leon Romanovsky" <leon@kernel.org>,
"Tariq Toukan" <tariqt@nvidia.com>,
"Mark Bloch" <mbloch@nvidia.com>,
"Richard Cochran" <richardcochran@gmail.com>,
"Andy Shevchenko" <andriy.shevchenko@intel.com>,
"Vitaly Lifshits" <vitaly.lifshits@intel.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Vinicius Costa Gomes" <vinicius.gomes@intel.com>,
"Dima Ruinskiy" <dima.ruinskiy@intel.com>,
"Mika Westerberg" <mika.westerberg@linux.intel.com>
Subject: [Intel-wired-lan] [PATCH 0/5] PCI / igc: Improvements related to PTM enabling
Date: Tue, 24 Feb 2026 12:10:39 +0100 [thread overview]
Message-ID: <20260224111044.3487873-1-mika.westerberg@linux.intel.com> (raw)
Hi all,
There is (still) an issue with Linux PCIe PTM enabling that happens because
Linux automatically enables PTM if certain capabilities are set. However,
turns out this is not enough because once we enumerate PCIe Switch Upstream
port we also enable PTM but the Downstream Ports are not yet enumerated.
This triggers floods of AER errors like this:
pcieport 0000:00:07.1: AER: Multiple Uncorrectable (Non-Fatal) error message received from 0000:00:07.1
pcieport 0000:00:07.1: PCIe Bus Error: severity=Uncorrectable (Non-Fatal), type=Transaction Layer, (Receiver ID)
pcieport 0000:00:07.1: device [8086:d44f] error status/mask=00200000/00000000
pcieport 0000:00:07.1: [21] ACSViol (First)
pcieport 0000:00:07.1: AER: TLP Header: 0x34000000 0x00000052 0x00000000 0x00000000
pcieport 0000:00:07.1: AER: device recovery successful
pcieport 0000:00:07.1: AER: Uncorrectable (Non-Fatal) error message received from 0000:00:07.1
We have ACS Source Validation enabled so Requester ID 0 which is sent by
the not-enumerated Downstream Port triggers the ACS violation AER.
This can be prevented by enabling PTM when the whole topology has been
enumerated and doing it like that seems to be reasonable anyway because we
only have a couple of drivers enabling it now so it does not make sense to
enable otherwise as it consumes bandwidth.
I did that fix and the problem went away but wanted to test with a device
and driver that actually enables PTM. I have a couple of igc NICs here that
has this support. However, when testing I noticed that during power state
transitions we still get errors like this from igc:
igc 0000:03:00.0 enp3s0: Timeout reading IGC_PTM_STAT register
and after this PTM for the device stays disabled.
This series includes fixes for igc that deal with the issues I found and
now PTM gets succesfully enabled and works accross suspend and runtime
suspend of igc, and there are no flood of AER errors as above. While there
there is one cleanup patch in the middle that drops unused parameter.
Mika Westerberg (5):
igc: Call netif_queue_set_napi() with rntl locked
igc: Let the PCI core deal with the PM resume flow
igc: Don't reset the hardware on suspend path
PCI/PTM: Drop granularity parameter from pci_enable_ptm()
PCI/PTM: Do not enable PTM automatically for Root and Switch Upstream Ports
drivers/net/ethernet/intel/ice/ice_main.c | 2 +-
drivers/net/ethernet/intel/idpf/idpf_main.c | 2 +-
drivers/net/ethernet/intel/igc/igc.h | 2 +-
drivers/net/ethernet/intel/igc/igc_ethtool.c | 6 +-
drivers/net/ethernet/intel/igc/igc_main.c | 33 ++++----
.../net/ethernet/mellanox/mlx5/core/main.c | 2 +-
drivers/pci/pcie/ptm.c | 77 ++++++++++---------
include/linux/pci.h | 6 +-
8 files changed, 64 insertions(+), 66 deletions(-)
--
2.50.1
next reply other threads:[~2026-02-24 11:10 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-24 11:10 Mika Westerberg [this message]
2026-02-24 11:10 ` [Intel-wired-lan] [PATCH 1/5] igc: Call netif_queue_set_napi() with rntl locked Mika Westerberg
2026-02-24 21:07 ` Vinicius Costa Gomes
2026-03-09 10:32 ` Dahan, AvigailX
2026-02-24 11:10 ` [Intel-wired-lan] [PATCH 2/5] igc: Let the PCI core deal with the PM resume flow Mika Westerberg
2026-02-24 16:58 ` Bjorn Helgaas
2026-02-25 12:26 ` Mika Westerberg
2026-02-25 12:28 ` Mika Westerberg
2026-02-25 23:56 ` Vinicius Costa Gomes
2026-02-26 11:12 ` Mika Westerberg
2026-02-24 21:08 ` Vinicius Costa Gomes
2026-03-09 10:37 ` Dahan, AvigailX
2026-02-24 11:10 ` [Intel-wired-lan] [PATCH 3/5] igc: Don't reset the hardware on suspend path Mika Westerberg
2026-02-24 21:08 ` Vinicius Costa Gomes
2026-03-09 10:39 ` Dahan, AvigailX
2026-02-24 11:10 ` [Intel-wired-lan] [PATCH 4/5] PCI/PTM: Drop granularity parameter from pci_enable_ptm() Mika Westerberg
2026-02-24 22:26 ` Jacob Keller
2026-03-09 10:50 ` Dahan, AvigailX
2026-02-24 11:10 ` [Intel-wired-lan] [PATCH 5/5] PCI/PTM: Do not enable PTM automatically for Root and Switch Upstream Ports Mika Westerberg
2026-03-09 10:54 ` Dahan, AvigailX
2026-02-24 17:13 ` [Intel-wired-lan] [PATCH 0/5] PCI / igc: Improvements related to PTM enabling Bjorn Helgaas
2026-02-25 12:27 ` Mika Westerberg
2026-02-24 22:28 ` Jacob Keller
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=20260224111044.3487873-1-mika.westerberg@linux.intel.com \
--to=mika.westerberg@linux.intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=andriy.shevchenko@intel.com \
--cc=anthony.l.nguyen@intel.com \
--cc=bhelgaas@google.com \
--cc=davem@davemloft.net \
--cc=dima.ruinskiy@intel.com \
--cc=edumazet@google.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=leon@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=mbloch@nvidia.com \
--cc=pabeni@redhat.com \
--cc=przemyslaw.kitszel@intel.com \
--cc=richardcochran@gmail.com \
--cc=saeedm@nvidia.com \
--cc=tariqt@nvidia.com \
--cc=vinicius.gomes@intel.com \
--cc=vitaly.lifshits@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