You are not logged in.

#1 2024-06-10 21:28:20

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

[SOLVED] PCI Passthrough Causes Host to Reboot

EDIT: For solution see post #29 (https://bbs.archlinux.org/viewtopic.php … 9#p2178919)

Hello, I have been trying to setup my gaming computer with QEMU, KVM, and libvirt so I can have Windows and Arch running as VM clients on an Arch host. Right now I have the Arch host booting from a USB stick just fine and I'm trying to get the Arch VM running with passing through the video card. I can boot the VM all the way to Gnome (seen via VNC) with passing through audio and the nvme drive, but whenever I pass through the video card I don't get video on the monitor and after about a minute the host computer reboots.

I've read through the QEMU, libvirt, KVM, and PCI passthrough wiki articles and thought I had everything setup correctly but I must be missing something. Below is my setp; please let me know if you need any additional details and thanks in advance for any ideas you may have!

Host computer hardware:
- Asus TUF B650M-Plus WIFI motherboard
- AMD Ryzen 7700 CPU w/integrated graphics
- Asus Radeon 7800XT
- 32GB DDR5 RAM
- USB boot drive for host OS
- 2TB WD NVME for Arch VM
- 2TB Samsung NVME for Windows 11 (not installed yet)


/etc/mkinitcpio.conf:

# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES=(usbhid xhci_hcd)
MODULES=(vfio_pci vfio vfio_iommu_type1)

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=()

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
##   This setup specifies all modules in the MODULES setting above.
##   No RAID, lvm2, or encrypted root is needed.
#    HOOKS=(base)
#
##   This setup will autodetect all modules for your system and should
##   work as a sane default
#    HOOKS=(base udev autodetect modconf block filesystems fsck)
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS=(base udev modconf block filesystems fsck)
#
##   This setup assembles a mdadm array with an encrypted root file system.
##   Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
#    HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
##   This setup loads an lvm2 volume group.
#    HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
##   This will create a systemd based initramfs which loads an encrypted root filesystem.
#    HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck)
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr and fsck hooks.
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)

# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9.
# Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

# MODULES_DECOMPRESS
# Decompress loadable kernel modules and their firmware during initramfs
# creation. Switch (yes/no).
# Enable to allow further decreasing image size when using high compression
# (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage
# at early boot.
# Note that any compressed files will be placed in the uncompressed early CPIO
# to avoid double compression.
#MODULES_DECOMPRESS="no"

/etc/default/grub.cfg:

# GRUB boot loader configuration

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet iommu=pt"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `videoinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT=true

# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y

# Probing for other operating systems is disabled for security reasons. Read
# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
# functionality install os-prober and uncomment to detect and include other
# operating systems.
#GRUB_DISABLE_OS_PROBER=false

Hardware support:

# LC_ALL=C.UTF-8 lscpu | grep Virtualization
Virtualization:                       AMD-V


# grep -E --color=auto 'vmx|svm|0xc0f' /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze


# dmesg | grep -i -e DMAR -e IOMMU
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=695c9602-df17-449a-a009-ef1482717f02 rw loglevel=3 quiet iommu=pt
[    0.028679] Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=695c9602-df17-449a-a009-ef1482717f02 rw loglevel=3 quiet iommu=pt
[    0.296731] iommu: Default domain type: Passthrough (set via kernel command line)
[    0.325623] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[    0.325652] pci 0000:00:01.0: Adding to iommu group 0
[    0.325663] pci 0000:00:01.1: Adding to iommu group 1
[    0.325672] pci 0000:00:01.2: Adding to iommu group 2
[    0.325687] pci 0000:00:02.0: Adding to iommu group 3
[    0.325697] pci 0000:00:02.1: Adding to iommu group 4
[    0.325710] pci 0000:00:03.0: Adding to iommu group 5
[    0.325725] pci 0000:00:04.0: Adding to iommu group 6
[    0.325740] pci 0000:00:08.0: Adding to iommu group 7
[    0.325751] pci 0000:00:08.1: Adding to iommu group 8
[    0.325760] pci 0000:00:08.3: Adding to iommu group 9
[    0.325779] pci 0000:00:14.0: Adding to iommu group 10
[    0.325789] pci 0000:00:14.3: Adding to iommu group 10
[    0.325839] pci 0000:00:18.0: Adding to iommu group 11
[    0.325848] pci 0000:00:18.1: Adding to iommu group 11
[    0.325858] pci 0000:00:18.2: Adding to iommu group 11
[    0.325867] pci 0000:00:18.3: Adding to iommu group 11
[    0.325876] pci 0000:00:18.4: Adding to iommu group 11
[    0.325885] pci 0000:00:18.5: Adding to iommu group 11
[    0.325895] pci 0000:00:18.6: Adding to iommu group 11
[    0.325905] pci 0000:00:18.7: Adding to iommu group 11
[    0.325915] pci 0000:01:00.0: Adding to iommu group 12
[    0.325925] pci 0000:02:00.0: Adding to iommu group 13
[    0.325943] pci 0000:03:00.0: Adding to iommu group 14
[    0.325955] pci 0000:03:00.1: Adding to iommu group 15
[    0.325966] pci 0000:04:00.0: Adding to iommu group 16
[    0.325976] pci 0000:05:00.0: Adding to iommu group 17
[    0.325987] pci 0000:06:00.0: Adding to iommu group 18
[    0.325998] pci 0000:06:08.0: Adding to iommu group 19
[    0.326008] pci 0000:06:09.0: Adding to iommu group 20
[    0.326018] pci 0000:06:0a.0: Adding to iommu group 21
[    0.326027] pci 0000:06:0c.0: Adding to iommu group 22
[    0.326038] pci 0000:06:0d.0: Adding to iommu group 23
[    0.326041] pci 0000:0a:00.0: Adding to iommu group 21
[    0.326043] pci 0000:0b:00.0: Adding to iommu group 22
[    0.326046] pci 0000:0c:00.0: Adding to iommu group 23
[    0.326066] pci 0000:0d:00.0: Adding to iommu group 24
[    0.326077] pci 0000:0d:00.1: Adding to iommu group 25
[    0.326087] pci 0000:0d:00.2: Adding to iommu group 26
[    0.326097] pci 0000:0d:00.3: Adding to iommu group 27
[    0.326107] pci 0000:0d:00.4: Adding to iommu group 28
[    0.326118] pci 0000:0d:00.6: Adding to iommu group 29
[    0.326127] pci 0000:0e:00.0: Adding to iommu group 30
[    0.332804] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).

IOMMU Groups:

IOMMU Group 0:
	00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14da]
IOMMU Group 1:
	00:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:14db]
IOMMU Group 2:
	00:01.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:14db]
IOMMU Group 3:
	00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14da]
IOMMU Group 4:
	00:02.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:14db]
IOMMU Group 5:
	00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14da]
IOMMU Group 6:
	00:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14da]
IOMMU Group 7:
	00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14da]
IOMMU Group 8:
	00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:14dd]
IOMMU Group 9:
	00:08.3 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:14dd]
IOMMU Group 10:
	00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 71)
	00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
IOMMU Group 11:
	00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e0]
	00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e1]
	00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e2]
	00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e3]
	00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e4]
	00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e5]
	00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e6]
	00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e7]
IOMMU Group 12:
	01:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch [1002:1478] (rev 11)
IOMMU Group 13:
	02:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch [1002:1479] (rev 11)
IOMMU Group 14:
	03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] [1002:747e] (rev c8)
IOMMU Group 15:
	03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio [1002:ab30]
IOMMU Group 16:
	04:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD Black SN850X NVMe SSD [15b7:5030] (rev 01)
IOMMU Group 17:
	05:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Upstream Port [1022:43f4] (rev 01)
IOMMU Group 18:
	06:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
IOMMU Group 19:
	06:08.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
IOMMU Group 20:
	06:09.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
IOMMU Group 21:
	06:0a.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
	0a:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 05)
IOMMU Group 22:
	06:0c.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
	0b:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset USB 3.2 Controller [1022:43f7] (rev 01)
IOMMU Group 23:
	06:0d.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
	0c:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset SATA Controller [1022:43f6] (rev 01)
IOMMU Group 24:
	0d:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev c5)
IOMMU Group 25:
	0d:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt Radeon High Definition Audio Controller [1002:1640]
IOMMU Group 26:
	0d:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 19h PSP/CCP [1022:1649]
IOMMU Group 27:
	0d:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Device [1022:15b6]
IOMMU Group 28:
	0d:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Device [1022:15b7]
IOMMU Group 29:
	0d:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller [1022:15e3]
IOMMU Group 30:
	0e:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Device [1022:15b8]

/etc/modprobe.d/vfio.conf

softdep drm pre: vfio-pci

options vfio-pci ids=1002:747e,1022:15e3

dmesg | grep -i vfio

[    1.704565] VFIO - User Level meta-driver version: 0.3
[    1.711814] vfio-pci 0000:03:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=none
[    1.711899] vfio_pci: add [1002:747e[ffffffff:ffffffff]] class 0x000000/00000000
[    1.711965] vfio_pci: add [1022:15e3[ffffffff:ffffffff]] class 0x000000/00000000

lspci passthrough devices:

# lspci -nnk -d 1002:747e
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] [1002:747e] (rev c8)
	Subsystem: ASUSTeK Computer Inc. Device [1043:0601]
	Kernel driver in use: vfio-pci
	Kernel modules: amdgpu

# lspci -nnk -d 1022:15e3
0d:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller [1022:15e3]
	DeviceName: Realtek ALC897 Audio
	Subsystem: ASUSTeK Computer Inc. Device [1043:8841]
	Kernel driver in use: vfio-pci
	Kernel modules: snd_hda_intel

lsmod:

Module                  Size  Used by
nft_masq               12288  3
nft_ct                 28672  1
nft_reject_ipv4        12288  2
nf_reject_ipv4         12288  1 nft_reject_ipv4
nft_reject             12288  1 nft_reject_ipv4
nft_chain_nat          12288  2
nf_nat                 61440  2 nft_masq,nft_chain_nat
nf_conntrack          200704  3 nf_nat,nft_ct,nft_masq
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         12288  1 nf_conntrack
nf_tables             376832  78 nft_reject_ipv4,nft_ct,nft_masq,nft_chain_nat,nft_reject
libcrc32c              12288  3 nf_conntrack,nf_nat,nf_tables
bridge                446464  0
stp                    12288  1 bridge
llc                    16384  2 bridge,stp
vfat                   24576  1
amd_atl                40960  1
fat                   106496  1 vfat
intel_rapl_msr         20480  0
intel_rapl_common      40960  1 intel_rapl_msr
snd_hda_codec_hdmi     98304  2
kvm_amd               204800  0
snd_hda_intel          65536  0
kvm                  1363968  1 kvm_amd
btusb                  86016  0
snd_intel_dspcfg       40960  1 snd_hda_intel
snd_intel_sdw_acpi     16384  1 snd_intel_dspcfg
btrtl                  32768  1 btusb
snd_hda_codec         212992  2 snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core          143360  3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
btintel                65536  1 btusb
crct10dif_pclmul       12288  1
snd_hwdep              20480  1 snd_hda_codec
btbcm                  24576  1 btusb
snd_pcm               200704  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
crc32_pclmul           12288  0
btmtk                  12288  1 btusb
snd_timer              53248  1 snd_pcm
polyval_clmulni        12288  0
polyval_generic        12288  1 polyval_clmulni
bluetooth            1097728  6 btrtl,btmtk,btintel,btbcm,btusb
gf128mul               16384  1 polyval_generic
snd                   155648  6 snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_pcm
ghash_clmulni_intel    16384  0
ledtrig_netdev         20480  0
sha512_ssse3           53248  0
soundcore              16384  1 snd
mousedev               24576  0
joydev                 24576  0
sha256_ssse3           36864  0
sha1_ssse3             32768  0
sp5100_tco             20480  0
r8169                 126976  0
ecdh_generic           16384  1 bluetooth
asus_nb_wmi            28672  0
aesni_intel           360448  0
asus_wmi               98304  1 asus_nb_wmi
realtek                40960  1
k10temp                16384  0
platform_profile       12288  1 asus_wmi
crypto_simd            16384  1 aesni_intel
mdio_devres            12288  1 r8169
i2c_piix4              36864  0
libphy                221184  3 r8169,mdio_devres,realtek
i8042                  57344  1 asus_wmi
ccp                   180224  1 kvm_amd
cryptd                 28672  2 crypto_simd,ghash_clmulni_intel
sparse_keymap          12288  1 asus_wmi
serio                  28672  1 i8042
rfkill                 40960  3 asus_wmi,bluetooth
gpio_amdpt             16384  0
rapl                   20480  0
wmi_bmof               12288  0
gpio_generic           24576  1 gpio_amdpt
pcspkr                 12288  0
mac_hid                12288  0
dm_mod                225280  0
loop                   45056  0
nfnetlink              20480  2 nf_tables
ip_tables              36864  0
x_tables               65536  1 ip_tables
ext4                 1146880  1
crc32c_generic         12288  0
crc16                  12288  2 bluetooth,ext4
mbcache                16384  1 ext4
jbd2                  204800  1 ext4
hid_logitech_hidpp     81920  0
hid_steam              32768  0
hid_logitech_dj        40960  0
ff_memless             20480  1 hid_steam
hid_generic            12288  0
uas                    36864  0
usb_storage            90112  3 uas
usbhid                 81920  2 hid_logitech_dj,hid_logitech_hidpp
amdgpu              13885440  0
amdxcp                 12288  1 amdgpu
i2c_algo_bit           20480  1 amdgpu
drm_ttm_helper         12288  1 amdgpu
ttm                   102400  2 amdgpu,drm_ttm_helper
drm_exec               12288  1 amdgpu
gpu_sched              65536  1 amdgpu
drm_suballoc_helper    12288  1 amdgpu
nvme                   65536  0
drm_buddy              20480  1 amdgpu
crc32c_intel           16384  3
drm_display_helper    262144  1 amdgpu
nvme_core             253952  1 nvme
xhci_pci               24576  0
video                  77824  3 asus_wmi,amdgpu,asus_nb_wmi
cec                    90112  1 drm_display_helper
xhci_pci_renesas       24576  1 xhci_pci
nvme_auth              24576  1 nvme_core
wmi                    36864  3 video,asus_wmi,wmi_bmof
vfio_pci               16384  0
vfio_pci_core          98304  1 vfio_pci
vfio_iommu_type1       45056  0
vfio                   73728  3 vfio_pci_core,vfio_iommu_type1,vfio_pci
iommufd               106496  1 vfio

Arch VM client config:

<domain type='kvm'>
  <name>archlinux-2024-6-7</name>
  <uuid>dd8da731-90f2-45a1-a61c-c2b8b90291e2</uuid>
  <metadata xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0" xmlns:cockpit_machines="https://github.com/cockpit-project/cockpit-machines">
    <libosinfo:libosinfo>
      <libosinfo:os id="http://archlinux.org/archlinux/rolling"/>
    </libosinfo:libosinfo>
    <cockpit_machines:data>
      <cockpit_machines:has_install_phase>false</cockpit_machines:has_install_phase>
      <cockpit_machines:install_source_type>file</cockpit_machines:install_source_type>
      <cockpit_machines:install_source>/var/lib/libvirt/images/archlinux-2024.04.01-x86_64.iso</cockpit_machines:install_source>
      <cockpit_machines:os_variant>archlinux</cockpit_machines:os_variant>
    </cockpit_machines:data>
  </metadata>
  <memory unit='KiB'>25165824</memory>
  <currentMemory unit='KiB'>25165824</currentMemory>
  <vcpu placement='static'>16</vcpu>
  <os firmware='efi'>
    <type arch='x86_64' machine='pc-q35-9.0'>hvm</type>
    <firmware>
      <feature enabled='no' name='enrolled-keys'/>
      <feature enabled='yes' name='secure-boot'/>
    </firmware>
    <loader readonly='yes' secure='yes' type='pflash'>/usr/share/edk2/x64/OVMF_CODE.secboot.4m.fd</loader>
    <nvram template='/usr/share/edk2/x64/OVMF_VARS.4m.fd'>/var/lib/libvirt/qemu/nvram/archlinux-2024-6-7_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <smm state='on'/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' clusters='1' cores='16' threads='1'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='volume' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source pool='default' volume='archlinux-2024.04.01-x86_64.iso'/>
      <target dev='sda' bus='sata'/>
      <readonly/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0' model='qemu-xhci' ports='15'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x11'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0x12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x14'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0x15'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0x16'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
    </controller>
    <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0x17'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
    </controller>
    <controller type='pci' index='9' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='9' port='0x18'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='10' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='10' port='0x19'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x1'/>
    </controller>
    <controller type='pci' index='11' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='11' port='0x1a'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x2'/>
    </controller>
    <controller type='pci' index='12' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='12' port='0x1b'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x3'/>
    </controller>
    <controller type='pci' index='13' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='13' port='0x1c'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x4'/>
    </controller>
    <controller type='pci' index='14' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='14' port='0x1d'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x5'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:5a:a9:e0'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'>
      <listen type='address' address='127.0.0.1'/>
    </graphics>
    <audio id='1' type='none'/>
    <video>
      <model type='vga' vram='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
      </source>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>
    <watchdog model='itco' action='reset'/>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </memballoon>
    <rng model='virtio'>
      <backend model='random'>/dev/urandom</backend>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </rng>
  </devices>
</domain>

Last edited by jmjohnson (2024-06-20 16:46:05)

Offline

#2 2024-06-11 10:33:08

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,955

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet iommu=pt"

iommu=pt is rarely needed on AMD CPU systems, and can even screw things up.
Please remove it and only put it back when it's the only solution for issues you have.

The iommu groups look very small, are you using a kernel with the ACS patch, like linux-zen or linux-vfio ?

On the host run (as root) journalctl -b | curl -F 'file=@-' 0x0.st and post the link it outputs.

append systemd.unit=multi-user.target to the bootcommand line for the arch guest to ensure you boot to console and not to graphical environment.
Does the reboot happen then also ?


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#3 2024-06-11 13:08:22

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Thanks for the reply Lone_Wolf. I removed the 'iommu=pt' option from the host boot options (I actually added only recently hoping it would help). Booting the guest with 'systemd.unit=multi-user.target' still reboots when passing the video card after about a minute. I'm running the arch default 'linux' kernel:

# uname -a
Linux moe 6.9.3-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 31 May 2024 15:14:45 +0000 x86_64 GNU/Linux

Host journalctl:
https://0x0.st/Xc-6.txt

Guest journalctl w/o passing the video card (if it helps):
https://0x0.st/Xco-.txt

I also forgot to add, I initially had Resize BAR support and Above 4G memory enabled. Right now my BIOS settings are:

- Resize BAR: disabled
- Above 4G memory: disabled
- SR-IOV: enabled
- Video boot device: integrated

Per section 10.24 of the PCI Passthrough via OVMF guide I don't see 'Max TOLUD' but it could be called something else, or maybe not available on this motherboard.

Last edited by jmjohnson (2024-06-11 14:02:43)

Offline

#4 2024-06-11 14:01:57

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,955

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

The host journal looks weird as it shows simpledrm but never switches to the amd integrated gpu.
lsmod output lists amdgpu but with a 0 behind it which should never happen.

Please post full output of

$ lspci -knn

Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#5 2024-06-11 14:04:01

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

lspci -knn

00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14d8]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Device [1022:14d9]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14da]
00:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:14db]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: pcieport
00:01.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:14db]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: pcieport
00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14da]
00:02.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:14db]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: pcieport
00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14da]
00:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14da]
00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14da]
00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:14dd]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: pcieport
00:08.3 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:14dd]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: pcieport
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 71)
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: piix4_smbus
	Kernel modules: i2c_piix4, sp5100_tco
00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e0]
00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e1]
00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e2]
00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e3]
	Kernel driver in use: k10temp
	Kernel modules: k10temp
00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e4]
00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e5]
00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e6]
00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Device [1022:14e7]
01:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch [1002:1478] (rev 11)
	Kernel driver in use: pcieport
02:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch [1002:1479] (rev 11)
	Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch [1002:1479]
	Kernel driver in use: pcieport
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] [1002:747e] (rev c8)
	Subsystem: ASUSTeK Computer Inc. Device [1043:0601]
	Kernel driver in use: vfio-pci
	Kernel modules: amdgpu
03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio [1002:ab30]
	Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio [1002:ab30]
	Kernel driver in use: vfio-pci
	Kernel modules: snd_hda_intel
04:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD Black SN850X NVMe SSD [15b7:5030] (rev 01)
	Subsystem: Sandisk Corp WD Black SN850X NVMe SSD [15b7:5030]
	Kernel driver in use: nvme
	Kernel modules: nvme
05:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Upstream Port [1022:43f4] (rev 01)
	Subsystem: ASMedia Technology Inc. Device [1b21:3328]
	Kernel driver in use: pcieport
06:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
	Subsystem: ASMedia Technology Inc. Device [1b21:3328]
	Kernel driver in use: pcieport
06:08.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
	Subsystem: ASMedia Technology Inc. Device [1b21:3328]
	Kernel driver in use: pcieport
06:09.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
	Subsystem: ASMedia Technology Inc. Device [1b21:3328]
	Kernel driver in use: pcieport
06:0a.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
	Subsystem: ASMedia Technology Inc. Device [1b21:3328]
	Kernel driver in use: pcieport
06:0c.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
	Subsystem: ASMedia Technology Inc. Device [1b21:3328]
	Kernel driver in use: pcieport
06:0d.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset PCIe Switch Downstream Port [1022:43f5] (rev 01)
	Subsystem: ASMedia Technology Inc. Device [1b21:3328]
	Kernel driver in use: pcieport
0a:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 05)
	DeviceName: Realtek RTL8125BG LAN
	Subsystem: ASUSTeK Computer Inc. Device [1043:87d7]
	Kernel driver in use: r8169
	Kernel modules: r8169
0b:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset USB 3.2 Controller [1022:43f7] (rev 01)
	Subsystem: ASMedia Technology Inc. Device [1b21:1142]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
0c:00.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset SATA Controller [1022:43f6] (rev 01)
	Subsystem: ASMedia Technology Inc. Device [1b21:1062]
	Kernel driver in use: ahci
0d:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev c5)
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu
0d:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt Radeon High Definition Audio Controller [1002:1640]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
0d:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 19h PSP/CCP [1022:1649]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: ccp
	Kernel modules: ccp
0d:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Device [1022:15b6]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
0d:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Device [1022:15b7]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
0d:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller [1022:15e3]
	DeviceName: Realtek ALC897 Audio
	Subsystem: ASUSTeK Computer Inc. Device [1043:8841]
	Kernel driver in use: vfio-pci
	Kernel modules: snd_hda_intel
0e:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Device [1022:15b8]
	Subsystem: ASUSTeK Computer Inc. Device [1043:8877]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci

Offline

#6 2024-06-11 14:12:03

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,955

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Both videocards are present in lspci output and I see no weird things in it.

Please remove the kms hook from hooks= in mkinitcpio.conf .
add amdgpu to the modules= line, but after the vfio modules.
regenerate initramfs , reboot , post fresh journal .


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#7 2024-06-11 14:20:28

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

journalctl output: https://0x0.st/Xco7.txt

$ cat /etc/mkinitcpio.conf
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES=(usbhid xhci_hcd)
MODULES=(vfio_pci vfio vfio_iommu_type1 amdgpu)

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=()

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
##   This setup specifies all modules in the MODULES setting above.
##   No RAID, lvm2, or encrypted root is needed.
#    HOOKS=(base)
#
##   This setup will autodetect all modules for your system and should
##   work as a sane default
#    HOOKS=(base udev autodetect modconf block filesystems fsck)
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS=(base udev modconf block filesystems fsck)
#
##   This setup assembles a mdadm array with an encrypted root file system.
##   Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
#    HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
##   This setup loads an lvm2 volume group.
#    HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
##   This will create a systemd based initramfs which loads an encrypted root filesystem.
#    HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck)
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr and fsck hooks.
HOOKS=(base udev autodetect microcode modconf keyboard keymap consolefont block filesystems fsck)

# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9.
# Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

# MODULES_DECOMPRESS
# Decompress loadable kernel modules and their firmware during initramfs
# creation. Switch (yes/no).
# Enable to allow further decreasing image size when using high compression
# (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage
# at early boot.
# Note that any compressed files will be placed in the uncompressed early CPIO
# to avoid double compression.
#MODULES_DECOMPRESS="no"

Offline

#8 2024-06-12 09:04:43

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,955

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Host journal looks good now.

Sanity check :
Does the 7800XT have a monitor attached ?
Are both 8-pin power connectors of the 7800xt properly connected ?
How strong (wattage) is your Power Supply ?


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#9 2024-06-12 13:05:29

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Yeah, I've been using this computer as my Windows gaming machine since I built it. Monitor is attached, both power connectors are seated properly, and I have a 750W power supply. I even tried all three Display Port connectors and the HDMI connector on the card. The HDMI did show the guest bios but then nothing and same result, host rebooted.

Offline

#10 2024-06-12 13:27:54

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,955

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Ok, start the arch guest again.

If system still reboots, use

# journalctl -b -1 | curl -F 'file=@-' 0x0.st

to get the journal from the crash .
(# indicates a root-prompt)

If -1 is not the journal you want, use -2 / -3 / -4 etc to get older journals.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#11 2024-06-12 14:00:11

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Here's the boot log from the guest with the video card passed to the guest and the host rebooted:

https://0x0.st/XcA8.txt

Last edited by jmjohnson (2024-06-12 14:00:29)

Offline

#12 2024-06-12 15:19:56

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,955

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

GDM seems to have big trouble starting  an X- session .

append systemd.unit=multi-user.target as kernel parameter for the guest.
Once it has booted, login to console as root and wait.
If after 5 minutes the system hasn't failed/rebooted :
get lspci -k & mkinitcpio.conf on the guest.

If it does reboot with the guest in console mode, post the host journal of that event.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#13 2024-06-12 16:22:18

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Guest still rebooting.

https://0x0.st/Xcmx.txt

I know you said to grab them if the system doesn't reboot but I figure it won't hurt to grab the items you asked for, just in case there's something interesting there.

Guest lspci -k:

lspci -k
00:00.0 Host bridge: Intel Corporation 82G33/G31/P35/P31 Express DRAM Controller
	Subsystem: Red Hat, Inc. QEMU Virtual Machine
	Kernel modules: intel_agp
00:01.0 VGA compatible controller: Device 1234:1111 (rev 02)
	Subsystem: Red Hat, Inc. Device 1100
	Kernel driver in use: bochs-drm
	Kernel modules: bochs
00:02.0 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:02.1 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:02.2 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:02.3 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:02.4 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:02.5 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:02.6 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:02.7 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:03.0 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:03.1 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:03.2 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:03.3 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:03.4 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:03.5 PCI bridge: Red Hat, Inc. QEMU PCIe Root port
	Subsystem: Red Hat, Inc. Device 0000
	Kernel driver in use: pcieport
00:1f.0 ISA bridge: Intel Corporation 82801IB (ICH9) LPC Interface Controller (rev 02)
	Subsystem: Red Hat, Inc. QEMU Virtual Machine
	Kernel driver in use: lpc_ich
	Kernel modules: lpc_ich
00:1f.2 SATA controller: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode] (rev 02)
	Subsystem: Red Hat, Inc. QEMU Virtual Machine
	Kernel driver in use: ahci
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
	Subsystem: Red Hat, Inc. QEMU Virtual Machine
	Kernel driver in use: i801_smbus
	Kernel modules: i2c_i801
01:00.0 Ethernet controller: Red Hat, Inc. Virtio 1.0 network device (rev 01)
	Subsystem: Red Hat, Inc. Device 1100
	Kernel driver in use: virtio-pci
	Kernel modules: virtio_pci
02:00.0 USB controller: Red Hat, Inc. QEMU XHCI Host Controller (rev 01)
	Subsystem: Red Hat, Inc. Device 1100
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
03:00.0 Communication controller: Red Hat, Inc. Virtio 1.0 console (rev 01)
	Subsystem: Red Hat, Inc. Device 1100
	Kernel driver in use: virtio-pci
	Kernel modules: virtio_pci
04:00.0 Unclassified device [00ff]: Red Hat, Inc. Virtio 1.0 memory balloon (rev 01)
	Subsystem: Red Hat, Inc. Device 1100
	Kernel driver in use: virtio-pci
	Kernel modules: virtio_pci
05:00.0 Unclassified device [00ff]: Red Hat, Inc. Virtio 1.0 RNG (rev 01)
	Subsystem: Red Hat, Inc. Device 1100
	Kernel driver in use: virtio-pci
	Kernel modules: virtio_pci
06:00.0 Non-Volatile memory controller: Sandisk Corp WD Black SN850X NVMe SSD (rev 01)
	Subsystem: Sandisk Corp WD Black SN850X NVMe SSD
	Kernel driver in use: nvme
	Kernel modules: nvme
07:00.0 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h/19h HD Audio Controller
	Subsystem: ASUSTeK Computer Inc. Device 8841
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
09:00.0 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio
	Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel

Guest /etc/mkinitcpio.conf:

# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES=(usbhid xhci_hcd)
MODULES=()

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=()

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
##   This setup specifies all modules in the MODULES setting above.
##   No RAID, lvm2, or encrypted root is needed.
#    HOOKS=(base)
#
##   This setup will autodetect all modules for your system and should
##   work as a sane default
#    HOOKS=(base udev autodetect modconf block filesystems fsck)
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS=(base udev modconf block filesystems fsck)
#
##   This setup assembles a mdadm array with an encrypted root file system.
##   Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
#    HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
##   This setup loads an lvm2 volume group.
#    HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
##   This will create a systemd based initramfs which loads an encrypted root filesystem.
#    HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck)
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr and fsck hooks.
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)

# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9.
# Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

# MODULES_DECOMPRESS
# Decompress loadable kernel modules and their firmware during initramfs
# creation. Switch (yes/no).
# Enable to allow further decreasing image size when using high compression
# (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage
# at early boot.
# Note that any compressed files will be placed in the uncompressed early CPIO
# to avoid double compression.
#MODULES_DECOMPRESS="no"

Offline

#14 2024-06-12 18:48:25

AaAaAAaaAAaARCH
Member
Registered: 2024-02-29
Posts: 42

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

In qemu set video to none? your first post has it set to vga.

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
      </source>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>
IOMMU Group 14:
	03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] [1002:747e] (rev c8)
IOMMU Group 15:
	03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 HDMI/DP Audio [1002:ab30]
IOMMU Group 16:
	04:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD Black SN850X NVMe SSD [15b7:5030] (rev 01)

Why not pass the audio device belonging to your gpu as well?



Bios
- Video boot device: integrated

Have you tried to use a different setting for this? Are there other option regarding extended graphics cards in the bios? Some settings in the bios can actually disable the PCI device depending on the implementation.

Have you tried updating the bios?

Last edited by AaAaAAaaAAaARCH (2024-06-12 19:31:30)

Offline

#15 2024-06-12 21:31:03

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Hey AaAaAAaaAAaARCH, thanks for the reply. I tried changing the qemu setting to 'none' but no change; the host still reboots after a bit. I have also added the video card audio recently. Originally I tried starting with just the video card but did have the thought maybe it needed the audio too but didn't make a difference.

My specific bios settings under the 'Advanced > NB Configuration' menus is the following with the current setting in [ ].

Primary Video Device -- [IGFX Video] / PCIE Video
Integrated Graphics -- Disabled / Force / [Auto]
UMA Frame Buffer Size -- [Auto] / 64M / 80M / ... / 1G

I have had the Integrated Graphics setting on Force up until today and I have not messed with the frame buffer setting. I'm currently on the 2412 bios. The only changes in the two newer didn't seem applicable. I can update if need-be.

2613 - Update AGESA version to Combo AM5 PI 1.1.7.0 patch A to support next generation AMD Ryzen™ processors.
2413 - Disable STAPM of AM5 Ryzen™ 8000 processors to improve system performance.

If it helps, my motherboard bios manual is here:

https://www.asus.com/us/motherboards-co … -PLUS-WIFI

Offline

#16 2024-06-12 21:41:27

cryptearth
Member
Registered: 2024-02-03
Posts: 2,094

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

I would recommend update to newest bios (be aware: all settings are lost - you have to re-configure all settings from scratch) anyway.
Also: Is amd-ucode installed on the host and active in bootloader config?

Offline

#17 2024-06-12 22:06:51

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

cryptearth, I was hoping to avoid that but it is what it is big_smile

As for the microcode I installed amd-ucode and it appears to be picked up

# journalctl -k --grep='microcode:'
Jun 12 14:31:56 moe kernel: microcode: Current revision: 0x0a601206

I use grub which is supposed to pick it up automatically, which it appears it did:

cat /boot/grub/grub.cfg 
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  695c9602-df17-449a-a009-ef1482717f02
else
  search --no-floppy --fs-uuid --set=root 695c9602-df17-449a-a009-ef1482717f02
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-695c9602-df17-449a-a009-ef1482717f02' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod fat
	set root='hd0,gpt2'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  BC03-3759
	else
	  search --no-floppy --fs-uuid --set=root BC03-3759
	fi
	echo	'Loading Linux linux ...'
	linux	/vmlinuz-linux root=UUID=695c9602-df17-449a-a009-ef1482717f02 rw  loglevel=3 quiet
	echo	'Loading initial ramdisk ...'
	initrd	/amd-ucode.img /initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-695c9602-df17-449a-a009-ef1482717f02' {
	menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-695c9602-df17-449a-a009-ef1482717f02' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		set root='hd0,gpt2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  BC03-3759
		else
		  search --no-floppy --fs-uuid --set=root BC03-3759
		fi
		echo	'Loading Linux linux ...'
		linux	/vmlinuz-linux root=UUID=695c9602-df17-449a-a009-ef1482717f02 rw  loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/amd-ucode.img /initramfs-linux.img
	}
	menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-695c9602-df17-449a-a009-ef1482717f02' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		set root='hd0,gpt2'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  BC03-3759
		else
		  search --no-floppy --fs-uuid --set=root BC03-3759
		fi
		echo	'Loading Linux linux ...'
		linux	/vmlinuz-linux root=UUID=695c9602-df17-449a-a009-ef1482717f02 rw  loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/amd-ucode.img /initramfs-linux-fallback.img
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
  insmod bli
fi
### END /etc/grub.d/25_bli ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
	fwsetup --is-supported
	if [ "$?" = 0 ]; then
		menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
			fwsetup
		}
	fi
fi
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###

Last edited by jmjohnson (2024-06-12 23:47:13)

Offline

#18 2024-06-12 23:46:55

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

I updated the bios and tweaked a couple of settings like setting IOMMU from Auto to Enabled but no luck, the host still reboots. I'm going to be out of town for a few days so won't be able to test anything for a bit. I'll be back mid-next week. Thank you all for your help trying to troubleshoot this! Hopefully I'll come back with a fresh set of eyes and find something I've been missing.

Offline

#19 2024-06-13 00:25:39

cryptearth
Member
Registered: 2024-02-03
Posts: 2,094

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Well, as I couldn't resist to try it myself:

board Crosshair V Formula-Z
cpu FX-8350
boot-gpu gt1030
passthrough-gpu gtx1650
host arch
guest arch
drive sata-ssd
kde plasma6 wayland

Although I struggled to set it all up properly after it was done everything worked fine - aside from furmark but that's likely due to the power supply not suiteable for the test rig.
So, unless there's some hardware fault it also could be a messed up system. As you use a thumbdrve for the OS: ditch it and use one of the proper drives to setup a fresh system with plasma and wayland and proper setup nvidia drivers just for the test.

Offline

#20 2024-06-13 06:50:29

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 75,100

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

GDM likely failed becuse you lack xorg-server.

Jun 12 08:37:58 lenny systemd[1]: Started Session 1 of User root.
Jun 12 08:37:58 lenny login[589]: ROOT LOGIN ON tty1
Jun 12 08:37:58 lenny systemd[598]: Finished Update XDG user dir configuration.
Jun 12 08:37:58 lenny systemd[598]: Reached target Main User Target.
Jun 12 08:37:58 lenny systemd[598]: Startup finished in 146ms.
Jun 12 08:38:04 lenny systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully.
Jun 12 08:38:24 lenny systemd[1]: systemd-hostnamed.service: Deactivated successfully.
Jun 12 08:39:52 lenny systemd-logind[541]: The system will power off now!
Jun 12 08:39:52 lenny systemd-logind[541]: System is powering down.
Jun 12 08:39:52 lenny systemd[1]: Stopping Session 1 of User root...

This is a controlled reboot in the guest, the system doesn't somehow "crash".
Try to boot the guest only to the rescue.target and also please clarify the situation: the thread swings between "host" and "guest" rebooting, always accompanied with "still".
=> Which is it?
Does the guest reboot or the host? (Or both, but if the host reboots the guest will shutdown or in doubt crash, of course)

Online

#21 2024-06-13 06:54:53

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,955

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

EDIT: responding to cryptearth post #19

From post #1 :

jmjohnson wrote:

- AMD Ryzen 7700 CPU w/integrated graphics
- Asus Radeon 7800XT

No nvidia cards/drivers, just amd opensource drivers.
Jmjohnson also uses GDM (and possibly Gnome) .

I do agree the thumbdrive may play a role.

Last edited by Lone_Wolf (2024-06-13 06:56:18)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#22 2024-06-13 09:48:54

cryptearth
Member
Registered: 2024-02-03
Posts: 2,094

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Lone_Wolf wrote:

EDIT: responding to cryptearth post #19

From post #1 :

jmjohnson wrote:

- AMD Ryzen 7700 CPU w/integrated graphics
- Asus Radeon 7800XT

No nvidia cards/drivers, just amd opensource drivers.
Jmjohnson also uses GDM (and possibly Gnome) .

I do agree the thumbdrive may play a role.

I'm aware of that - but I hadn't anything more suiteable at hand - it was already 10 pm and I work early shift this week - it was just a quick and dirty test with components I had on hand.
My main rig is also an amd/amd system with and I have yet another amd gpu on hand for test - I just hadn't the time yesterday evening - it just was getting late and I got tired.
Point is, same as with that other topic about poor performance: With a fresh install on a test bench it works - which hints towards either hardware defect or bad configuration somewhere hence my recommendation to setup a fresh install on one of the proper drives. Ot shouldn't matter if amd, intel or nvidia or if cpu-igpu or two dedicated gpus.
For the sake of testing I have yet another system with an amd apu on hand - with thus I could test the scenario more closely as the board also has a similar setting for tge igpu stuff. But as I work a regular 9-to-5 job I don't have time all day to test such stuff.

Offline

#23 2024-06-13 22:32:26

cryptearth
Member
Registered: 2024-02-03
Posts: 2,094

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

So I did a couple more tests:
- I kept using KDE plasma6 with SDDM - so I can only speak for it
- I switched between wayland and x11 in both the host as well as the guest
- I also tested with host only in runlevel 3 (multi-user target without graphic)
- Also: Used a system with an cpu-igpu + 1 dedicated gpu instead of no ipgu + 2 dedicated.
In no cases I experienced any issues - neither on the host nor on the guest. I only encountered some issues in furmark with wayland - but a sanity check furmark in guest vs furmark on host verified it's properly the gpu at fault.

TLDR: At least with my hardware and using plasma6 with sddm and either x11 or wayland I can confirm that gpu passthrough works out of the box with what one gets from the repos currently. Hence for me the issue seems likely either caused by actual hardware defects - then OP is screwed anyway - or some software problem.
As this is a question-answer-repeat style question I'd like to request OP to use one of the spare drives to just set up arch with plasma6 and sddm and retest to rule out if it's some issue with gdm/gnome.

Offline

#24 2024-06-20 00:26:38

jmjohnson
Member
Registered: 2019-08-23
Posts: 21

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

Thanks for the replies while I was out. I did some more testing today but am seeing the same results. The USB stick decided to stop booting so I bought and installed a SATA SSD and setup Arch with KDE/SDDM as the host system. Using virt-manager to setup a guest system results in the same thing: the host system reboots after about a minute.

I found an old GTX 970 I had laying around and tried passing that through to the guest. To my surprise the guest booted all the way to the Arch ISO CLI and stayed up w/o issue, displaying on a second monitor. One thing I noticed is both the GTX 970 and HDMI out from the card are both in the same group, which is not what we're seeing with the 7800XT. Not sure if it's relevant but it's the only thing that's really standing out to me.

Offline

#25 2024-06-20 01:57:59

cryptearth
Member
Registered: 2024-02-03
Posts: 2,094

Re: [SOLVED] PCI Passthrough Causes Host to Reboot

This shifts towards a hardware issue: either the gpu is bad - or your psu has issues keeping up with the high inrush current when the gpu starts up. Could also be a broken motherboard.

Offline

Board footer

Powered by FluxBB