All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] PCI/DOE: Speed up mailbox polling
@ 2026-11-03 16:30 Michal Clapinski
  2026-11-03 16:31 ` [PATCH v2 1/2] PCI/DOE: Don't busy-poll the mailbox when HZ < 128 Michal Clapinski
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Michal Clapinski @ 2026-11-03 16:30 UTC (permalink / raw)
  To: Bjorn Helgaas, linux-pci
  Cc: Lukas Wunner, linux-kernel, David Matlack, Michal Clapinski

The DOE code waits for mailbox responses by sleeping
PCI_DOE_POLL_INTERVAL (7 ms at HZ=1000, 4 ms at HZ=250) between status
reads. Every DOE-capable endpoint goes through several such exchanges
during enumeration: an abort when the mailbox is created and one
discovery exchange per supported feature. Each pays at least one
interval, even though devices typically respond within about a hundred
microseconds.

Patch 1 fixes PCI_DOE_POLL_INTERVAL being 0 when HZ < 128, which makes
the polling loops spin for up to a second instead of sleeping.

Patch 2 replaces the fixed sleep with an exponential backoff that
busy-waits briefly while high resolution timers are not yet enabled, as
is the case during enumeration at boot. Time spent in pci_device_add()
for an NVIDIA B200 GPU drops from 45.9 ms to 6.4 ms.

Changes in v2:
- New patch 1, fixing busy-polling when HZ < 128.
- Patch 2: share the fast poll with pci_doe_abort() by moving it into
  pci_doe_wait().
- Patch 2: replace the fixed ~2 ms fast-polling window with an
  exponential backoff that busy-waits for its first ~255 us, but only
  until high resolution timers are enabled.

Michal Clapinski (2):
  PCI/DOE: Don't busy-poll the mailbox when HZ < 128
  PCI/DOE: Poll briefly for a response before sleeping

 drivers/pci/doe.c | 49 ++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 44 insertions(+), 5 deletions(-)

-- 
2.56.0.385.gac671c819a-goog


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-11-03 21:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-03 16:30 [PATCH v2 0/2] PCI/DOE: Speed up mailbox polling Michal Clapinski
2026-11-03 16:31 ` [PATCH v2 1/2] PCI/DOE: Don't busy-poll the mailbox when HZ < 128 Michal Clapinski
2026-11-03 16:33   ` sashiko-bot
2026-11-03 16:31 ` [PATCH v2 2/2] PCI/DOE: Poll briefly for a response before sleeping Michal Clapinski
2026-11-03 16:35   ` sashiko-bot
2026-11-03 21:27 ` [PATCH v2 0/2] PCI/DOE: Speed up mailbox polling Bjorn Helgaas

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.