пятница

[Bug 2159596] Re: amdgpu fails to come up due to BAR issue when at PCIe root

The upstream fix is now queued: commit d58384c22739, "PCI: Fix BAR resize for devices on a root bus", in Bjorn Helgaas's PCI tree (git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git, branch pci/for-linus), committed 2026-09-18 for the current 7.3 cycle. Reviewed-by: Ilpo Järvinen, Cc: stable. Patch thread: https://patch.msgid.link/20260918035633.566823-1-lizf@honeycomb.io Request: please cherry-pick this into both affected Ubuntu 7.0 kernels: the resolute 7.0 kernel and linux-hwe-7.0 in noble, which is installed by default from the 24.04.5 point release, so this reaches a default install and not just opt-in HWE users. Upstream stable will only carry the fix to 7.2.y (6.19.y, 7.0.y and 7.1.y are EOL), so it will not arrive via a 7.0.y stable update. Impact: when a device sits directly on a PCI root bus (bus->self == NULL, e.g. the SolidRun HoneyComb LX2K, where the AMD dGPU has no root port), pci_resize_resource() releases the device's BARs and returns success without reassigning them. amdgpu then fails init (gmc_v8_0 sw_init failed -19). Regression introduced upstream by 337b1b566db0 (v6.19). Fix: with no upstream bridge, call pci_bus_assign_resources() on the root bus to place the released BARs. It also fixes an unbalanced pci_bus_sem up_read() on that path. Testing: applied to the resolute 7.0.0-31.31 source (hunk offsets only), built with pdebuild and booted on the affected hardware. amdgpu initializes with the full 4096M BAR with the amdgpu.rebar=0 workaround removed. I also exercised the resize path directly via the resource0_resize sysfs attribute, shrinking to 256M and growing back to 4G, with a clean release/assign each way. Regression potential: confined to pci_do_resource_release_and_resize(). The bridged path's logic is unchanged apart from taking pci_bus_sem before the BAR release loop. Workaround until then: amdgpu.rebar=0. -- You received this bug notification because you are subscribed to linux in Ubuntu. Matching subscriptions: Bgg, Bmail, Nb https://bugs.launchpad.net/bugs/2159596 Title: amdgpu fails to come up due to BAR issue when at PCIe root Status in linux package in Ubuntu: Triaged Status in linux-hwe-7.0 package in Ubuntu: Triaged Bug description: With the 7.0 hwe kernel on 24.04 (and presumably also the 7.0 kernel on 26.04), amdgpu completely fails to init on the SolidRun HoneyComb LX2 (NXP LX2160A, arm64, ACPI), where the GPU endpoint is enumerated directly on the root bus of its segment (there is no root port device, so pdev->bus->self is NULL):   amdgpu 0004:01:00.0: BAR 0 [mem 0xa400000000-0xa40fffffff 64bit pref]: releasing   amdgpu 0004:01:00.0: BAR 2 [mem 0xa410000000-0xa4101fffff 64bit pref]: releasing   amdgpu 0004:01:00.0: sw_init of IP block <gmc_v8_0> failed -19   amdgpu 0004:01:00.0: amdgpu_device_ip_init failed   amdgpu 0004:01:00.0: Fatal error during GPU init No error is logged because the resize path reports success; amdgpu then finds BAR0 IORESOURCE_UNSET and bails out with -ENODEV. Observed at runtime on Ubuntu's linux-hwe-7.0 (7.0.0-14, broken) vs linux-hwe-6.17 (working), but nothing here is distro-specific: Ubuntu carries this code unmodified, and the affected function is identical to current mainline. By source inspection the regression window is v6.18 (old code paths) to v6.19 (consolidation). See https://lkml.org/lkml/2026/7/5/502 for full description and patch. Workaround is to disable resizable BAR using amdgpu.rebar=0 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2159596/+subscriptions

Комментариев нет:

Отправить комментарий