Files
linux/drivers
Alex Williamson 4ae6b40b7c UPSTREAM: PCI/PM: Extend D3hot delay for NVIDIA HDA controllers
Assignment of NVIDIA Ampere-based GPUs have seen a regression since the
below referenced commit, where the reduced D3hot transition delay appears
to introduce a small window where a D3hot->D0 transition followed by a bus
reset can wedge the device.  The entire device is subsequently unavailable,
returning -1 on config space read and is unrecoverable without a host
reset.

This has been observed with RTX A2000 and A5000 GPU and audio functions
assigned to a Windows VM, where shutdown of the VM places the devices in
D3hot prior to vfio-pci performing a bus reset when userspace releases the
devices.  The issue has roughly a 2-3% chance of occurring per shutdown.

Restoring the HDA controller d3hot_delay to the effective value before the
below commit has been shown to resolve the issue.  NVIDIA confirms this
change should be safe for all of their HDA controllers.

Bug: 254441685
Fixes: 3e347969a5 ("PCI/PM: Reduce D3hot delay with usleep_range()")
Link: https://lore.kernel.org/r/20230413194042.605768-1-alex.williamson@redhat.com
Reported-by: Zhiyi Guo <zhguo@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Tarun Gupta <targupta@nvidia.com>
Cc: Abhishek Sahu <abhsahu@nvidia.com>
Cc: Tarun Gupta <targupta@nvidia.com>
(cherry picked from commit a5a6dd2624)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ie8bb6c852e041ce16b4f9086c42030dc24375602
2023-07-03 15:07:32 +01:00
..
2023-04-05 14:15:04 +00:00
2023-04-25 16:02:54 +00:00
2023-02-01 09:38:19 +00:00
2023-02-06 10:45:01 +00:00
2023-05-11 05:41:52 +00:00
2023-04-04 15:14:14 +00:00
2023-04-26 13:37:41 +00:00
2023-04-05 14:15:04 +00:00
2023-04-05 14:15:04 +00:00
2023-03-23 17:34:39 +00:00
2023-03-21 10:16:45 +00:00
2023-04-26 13:37:41 +00:00
2023-04-25 16:02:54 +00:00
2023-04-26 13:37:41 +00:00
2023-02-22 12:57:03 +01:00
2023-04-25 16:02:54 +00:00
2023-04-05 11:24:55 +02:00
2023-03-17 13:35:31 +00:00
2023-04-05 14:15:04 +00:00
2023-04-26 13:37:41 +00:00
2023-04-04 15:14:14 +00:00
2023-04-17 11:31:12 +00:00
2023-03-10 09:40:13 +01:00
2023-02-09 13:35:59 +00:00
2023-04-25 16:02:54 +00:00
2022-08-25 11:40:33 +02:00
2023-01-25 16:13:42 +00:00