After starting a virtual machine using PCIe passthrough, stopping it prevents the amdgpu driver from bind to a specific iGPU.
Background
I was using hookscript on the Ryzen 7 7700 to enable restarting after shutdown.
This worked fine to reduce the hassle of blacklisting and early binding.
However, I became interested when I heard that other users with Ryzen iGPUs couldn't do the same thing, so I bought an 8700G (780m) to try it out and found that it didn't work.
Verification Results
it was determined that an error occurred during driver re-binding, resulting in the binding failure.
This issue does not occur on the 7700 but only on the 8700G, and it functions normally until the vfio-pci driver is bound, so I'm struggling to figure out what the problem is.
I'd like to know if this should be considered a specific CPU-related issue that cannot be improved, or if anyone knows of any possible solutions.
Error
The following operations will function correctly until the vfio-pci driver is bind.
Error
Background
I was using hookscript on the Ryzen 7 7700 to enable restarting after shutdown.
This worked fine to reduce the hassle of blacklisting and early binding.
However, I became interested when I heard that other users with Ryzen iGPUs couldn't do the same thing, so I bought an 8700G (780m) to try it out and found that it didn't work.
Verification Results
it was determined that an error occurred during driver re-binding, resulting in the binding failure.
This issue does not occur on the 7700 but only on the 8700G, and it functions normally until the vfio-pci driver is bound, so I'm struggling to figure out what the problem is.
I'd like to know if this should be considered a specific CPU-related issue that cannot be improved, or if anyone knows of any possible solutions.
Error
Code:
Nov 23 23:13:06 pve2 kernel: vfio-pci 0000:10:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=none
Nov 23 23:13:13 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: initializing kernel modesetting (IP DISCOVERY 0x1002:0x15BF 0x1849:0x35BF 0x06).
Nov 23 23:13:13 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: register mmio base: 0xF4F00000
Nov 23 23:13:13 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: register mmio size: 524288
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 0 <soc21_common>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 1 <gmc_v11_0>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 2 <ih_v6_0>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 3 <psp>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 4 <smu>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 5 <dm>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 6 <gfx_v11_0>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 7 <sdma_v6_0>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 8 <vcn_v4_0>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 9 <jpeg_v4_0>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: detected ip block number 10 <mes_v11_0>
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: Fetched VBIOS from VFCT
Nov 23 23:13:17 pve2 kernel: amdgpu: ATOM BIOS: 113-PHXGENERIC-001
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: vgaarb: deactivate vga console
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: Trusted Memory Zone (TMZ) feature enabled
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: vm size is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: VRAM: 512M 0x0000008000000000 - 0x000000801FFFFFFF (512M used)
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: GART: 512M 0x00007FFF00000000 - 0x00007FFF1FFFFFFF
Nov 23 23:13:17 pve2 kernel: [drm] Detected VRAM RAM=512M, BAR=512M
Nov 23 23:13:17 pve2 kernel: [drm] RAM width 64bits DDR5
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: amdgpu: 512M of VRAM memory ready
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: amdgpu: 15585M of GTT memory ready.
Nov 23 23:13:17 pve2 kernel: [drm] GART: num cpu pages 131072, num gpu pages 131072
Nov 23 23:13:17 pve2 kernel: [drm] PCIE GART of 512M enabled (table at 0x000000801FD00000).
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: [drm] Loading DMUB firmware via PSP: version=0x08005300
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: Found VCN firmware Version ENC: 1.24 DEC: 9 VEP: 0 Revision: 22
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: psp reg (0x16080) wait timed out, mask: 8000ffff, read: 30000 exp: 80000000
Nov 23 23:13:17 pve2 kernel: [drm:psp_v13_0_4_ring_create [amdgpu]] *ERROR* Failed to wait for trust OS ready for ring creation
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: PSP create ring failed!
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: psp reg (0x16080) wait timed out, mask: 8000ffff, read: 30000 exp: 80000000
Nov 23 23:13:18 pve2 kernel: [drm:psp_v13_0_4_ring_destroy [amdgpu]] *ERROR* Fail to stop psp ring
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: PSP firmware loading failed
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: hw_init of IP block <psp> failed -22
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: amdgpu_device_ip_init failed
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: Fatal error during GPU init
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: amdgpu: finishing device.
Nov 24 03:45:09 pve2 kernel: ------------[ cut here ]------------
Nov 24 03:45:09 pve2 kernel: WARNING: CPU: 10 PID: 2378 at drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:639 amdgpu_irq_put+0xbe/0xe0 [amdgpu]
Nov 24 03:45:09 pve2 kernel: Modules linked in: tcp_diag inet_diag cmac nls_utf8 cifs cifs_arc4 nls_ucs2_utils rdma_cm iw_cm ib_cm cifs_md4 netfs ebtable_filter ebtables ip_set ip6table_raw iptable_raw ip6table_filter ip6_tables iptable_filter nf_tables sunrpc nfnetlink_cttimeout bonding openvswitch nsh nf_conncount nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 softdog nfnetlink_log binfmt_misc amd_atl mt7921e intel_rapl_msr amdgpu snd_hda_codec_alc662 intel_rapl_common mt7921_common snd_hda_codec_realtek_lib snd_hda_codec_atihdmi snd_hda_codec_generic mt792x_lib snd_hda_codec_hdmi mt76_connac_lib edac_mce_amd amdxcp mt76 drm_panel_backlight_quirks snd_hda_intel drm_buddy kvm_amd drm_ttm_helper snd_hda_codec ttm snd_hda_core btusb drm_exec drm_suballoc_helper mac80211 kvm btrtl snd_intel_dspcfg drm_display_helper btintel snd_intel_sdw_acpi btbcm snd_hwdep snd_pcm cec btmtk polyval_clmulni rc_core snd_timer cfg80211 ghash_clmulni_intel aesni_intel amdxdna snd i2c_algo_bit rapl wmi_bmof bluetooth spd5118 pcspkr ccp gpu_sched
Nov 24 03:45:09 pve2 kernel: mlx5_fwctl soundcore k10temp libarc4 fwctl input_leds joydev mac_hid sch_fq_codel vhost_net vhost vhost_iotlb tap nct6775 nct6775_core hwmon_vid vfio_pci vfio_pci_core irqbypass vfio_iommu_type1 vfio iommufd nvme_tcp nvme_fabrics efi_pstore nfnetlink dmi_sysfs ip_tables x_tables autofs4 zfs(PO) spl(O) btrfs blake2b_generic xor raid6_pq mlx5_ib ib_uverbs macsec ib_core hid_generic usbmouse usbkbd usbhid hid uas usb_storage mlx5_core mlxfw xhci_pci psample tls nvme i2c_piix4 ahci i2c_smbus xhci_hcd libahci pci_hyperv_intf r8169 nvme_core realtek nvme_keyring nvme_auth video wmi gpio_amdpt
Nov 24 03:45:09 pve2 kernel: CPU: 10 UID: 0 PID: 2378 Comm: bash Tainted: P O 6.17.2-1-pve #1 PREEMPT(voluntary)
Nov 24 03:45:09 pve2 kernel: Tainted: [P]=PROPRIETARY_MODULE, [O]=OOT_MODULE
Nov 24 03:45:09 pve2 kernel: Hardware name: ASRock B850M-X WiFi R2.0/B850M-X WiFi R2.0, BIOS 3.40 08/27/2025
Nov 24 03:45:09 pve2 kernel: RIP: 0010:amdgpu_irq_put+0xbe/0xe0 [amdgpu]
Nov 24 03:45:09 pve2 kernel: Code: fc ff ff 84 c0 75 87 eb 23 44 89 ea 48 89 de 4c 89 e7 e8 45 fd ff ff 5b 41 5c 41 5d 41 5e 5d 31 d2 31 f6 31 ff e9 fd 93 df c1 <0f> 0b b8 ea ff ff ff eb af b8 fe ff ff ff eb a8 e9 d5 51 68 00 66
Nov 24 03:45:09 pve2 kernel: RSP: 0018:ffffd0204165f830 EFLAGS: 00010246
Nov 24 03:45:09 pve2 kernel: RAX: 0000000000000000 RBX: ffff8ec8d0aa5a18 RCX: 0000000000000000
Nov 24 03:45:09 pve2 kernel: RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
Nov 24 03:45:09 pve2 kernel: RBP: ffffd0204165f850 R08: 0000000000000000 R09: 0000000000000000
Nov 24 03:45:09 pve2 kernel: R10: 0000000000000000 R11: 0000000000000000 R12: ffff8ec8d0a80000
Nov 24 03:45:09 pve2 kernel: R13: 0000000000000000 R14: 0000000000000001 R15: ffff8ec8d0a98bc8
Nov 24 03:45:09 pve2 kernel: FS: 000076f410a40740(0000) GS:ffff8ecb39286000(0000) knlGS:0000000000000000
Nov 24 03:45:09 pve2 kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Nov 24 03:45:09 pve2 kernel: CR2: 00007d742b2230e0 CR3: 0000000169e2d000 CR4: 0000000000f50ef0
Nov 24 03:45:09 pve2 kernel: PKRU: 55555554
Nov 24 03:45:09 pve2 kernel: Call Trace:
Nov 24 03:45:09 pve2 kernel: <TASK>
Nov 24 03:45:09 pve2 kernel: amdgpu_fence_driver_hw_fini+0x115/0x150 [amdgpu]
Nov 24 03:45:09 pve2 kernel: amdgpu_device_fini_hw+0xef/0x3a1 [amdgpu]
Nov 24 03:45:09 pve2 kernel: ? blocking_notifier_chain_unregister+0x38/0x70
Nov 24 03:45:09 pve2 kernel: amdgpu_driver_unload_kms+0x4f/0x60 [amdgpu]
Nov 24 03:45:09 pve2 kernel: amdgpu_driver_load_kms.cold+0x19/0x2f [amdgpu]
Nov 24 03:45:09 pve2 kernel: amdgpu_pci_probe+0x1f6/0x4c0 [amdgpu]
Nov 24 03:45:09 pve2 kernel: local_pci_probe+0x44/0xa0
Nov 24 03:45:09 pve2 kernel: pci_device_probe+0xe9/0x280
Nov 24 03:45:09 pve2 kernel: really_probe+0xf6/0x370
Nov 24 03:45:09 pve2 kernel: ? pm_runtime_barrier+0x55/0xa0
Nov 24 03:45:09 pve2 kernel: __driver_probe_device+0x8c/0x140
Nov 24 03:45:09 pve2 kernel: device_driver_attach+0x55/0xe0
Nov 24 03:45:09 pve2 kernel: bind_store+0x77/0xd0
Nov 24 03:45:09 pve2 kernel: drv_attr_store+0x21/0x50
Nov 24 03:45:09 pve2 kernel: sysfs_kf_write+0x6f/0x90
Nov 24 03:45:09 pve2 kernel: kernfs_fop_write_iter+0x15e/0x210
Nov 24 03:45:09 pve2 kernel: vfs_write+0x271/0x490
Nov 24 03:45:09 pve2 kernel: ksys_write+0x6f/0xf0
Nov 24 03:45:09 pve2 kernel: __x64_sys_write+0x19/0x30
Nov 24 03:45:09 pve2 kernel: x64_sys_call+0x79/0x2330
Nov 24 03:45:09 pve2 kernel: do_syscall_64+0x80/0xa30
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? filp_flush+0x5e/0xb0
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? filp_close+0x1f/0x30
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? do_dup2+0xc2/0x160
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? get_close_on_exec+0x34/0x50
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? ksys_dup3+0x9d/0x120
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? __x64_sys_dup2+0x2e/0xd0
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? x64_sys_call+0x1361/0x2330
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? do_syscall_64+0xb8/0xa30
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? __x64_sys_fcntl+0x97/0x130
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? x64_sys_call+0x1b7a/0x2330
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? do_syscall_64+0xb8/0xa30
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? x64_sys_call+0x1b7a/0x2330
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? do_syscall_64+0xb8/0xa30
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? x64_sys_call+0x1bf2/0x2330
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? do_syscall_64+0xb8/0xa30
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? handle_mm_fault+0x254/0x370
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? do_user_addr_fault+0x2f8/0x830
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? irqentry_exit_to_user_mode+0x2e/0x290
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? irqentry_exit+0x43/0x50
Nov 24 03:45:09 pve2 kernel: ? srso_alias_return_thunk+0x5/0xfbef5
Nov 24 03:45:09 pve2 kernel: ? exc_page_fault+0x90/0x1b0
Nov 24 03:45:09 pve2 kernel: entry_SYSCALL_64_after_hwframe+0x76/0x7e
Nov 24 03:45:09 pve2 kernel: RIP: 0033:0x76f410ad2687
Nov 24 03:45:09 pve2 kernel: Code: 48 89 fa 4c 89 df e8 58 b3 00 00 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 1a 5b c3 0f 1f 84 00 00 00 00 00 48 8b 44 24 10 0f 05 <5b> c3 0f 1f 80 00 00 00 00 83 e2 39 83 fa 08 75 de e8 23 ff ff ff
Nov 24 03:45:09 pve2 kernel: RSP: 002b:00007fff045b6850 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
Nov 24 03:45:09 pve2 kernel: RAX: ffffffffffffffda RBX: 000076f410a40740 RCX: 000076f410ad2687
Nov 24 03:45:09 pve2 kernel: RDX: 000000000000000d RSI: 00005d228a8bd140 RDI: 0000000000000001
Nov 24 03:45:09 pve2 kernel: RBP: 00005d228a8bd140 R08: 0000000000000000 R09: 0000000000000000
Nov 24 03:45:09 pve2 kernel: R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000d
Nov 24 03:45:09 pve2 kernel: R13: 000076f410c2b5c0 R14: 000076f410c28e80 R15: 0000000000000000
Nov 24 03:45:09 pve2 kernel: </TASK>
Nov 24 03:45:09 pve2 kernel: ---[ end trace 0000000000000000 ]---
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: [drm] Loading DMUB firmware via PSP: version=0x08005300
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: Found VCN firmware Version ENC: 1.24 DEC: 9 VEP: 0 Revision: 22
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: psp reg (0x16080) wait timed out, mask: 8000ffff, read: 30000 exp: 80000000
Nov 23 23:13:17 pve2 kernel: [drmsp_v13_0_4_ring_create [amdgpu]] *ERROR* Failed to wait for trust OS ready for ring creation
Nov 23 23:13:17 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: PSP create ring failed!
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: psp reg (0x16080) wait timed out, mask: 8000ffff, read: 30000 exp: 80000000
Nov 23 23:13:18 pve2 kernel: [drmsp_v13_0_4_ring_destroy [amdgpu]] *ERROR* Fail to stop psp ring
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: PSP firmware loading failed
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: hw_init of IP block <psp> failed -22
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: amdgpu_device_ip_init failed
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: Fatal error during GPU init
Nov 23 23:13:18 pve2 kernel: amdgpu 0000:10:00.0: amdgpu: amdgpu: finishing device.
The following operations will function correctly until the vfio-pci driver is bind.
Code:
echo "0000:10:00.0" > /sys/bus/pci/drivers/amdgpu/bind 2>/dev/null
echo "0000:10:00.0" > /sys/bus/pci/drivers/amdgpu/unbind 2>/dev/null
echo "0000:10:00.0" > /sys/bus/pci/drivers/amdgpu/bind 2>/dev/null
:
Error
Code:
echo "0000:10:00.0" > /sys/bus/pci/drivers/amdgpu/unbind 2>/dev/null
:
VM Start & Shutdown
:
echo "0000:10:00.0" > /sys/bus/pci/drivers/vfio-pci/unbind 2>/dev/null
echo "0000:10:00.0" > /sys/bus/pci/drivers/amdgpu/bind 2>/dev/null
Last edited: