You are not logged in.

#1 2024-11-13 18:49:11

am_silex
Member
Registered: 2024-11-13
Posts: 6

Intel HD630 GPU Passthrough

Hello, everyone

I'd like to share my experience with QEMU/Libvirt and sharing Intel GPU with guest VM.
And ask community for advice

My host is HP Elitedesk 800 G3 - Intel i3-7100 with HD630
OS - Linux archlinux 6.11.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 01 Nov 2024 03:30:41 +0000 x86_64 GNU/Linux

I can pass through iGPU to a guest OS everything is fine except that no output from DP.
When adding this section along with rom file output appears (after OS boots up)
<qemu:override>
    <qemu:device alias='hostdev0'>
      <qemu:frontend>
        <qemu:property name='x-igd-opregion' type='bool' value='true'/>
      </qemu:frontend>
    </qemu:device>
  </qemu:override>

However, I still have 2 problems:
1. Occasional DMAR errors in dmesg
2. Unpredictable hang of host as well as guest with network connection lost. This might take up to several hours, but always happens.

Offline

#2 2024-11-14 03:41:54

am_silex
Member
Registered: 2024-11-13
Posts: 6

Re: Intel HD630 GPU Passthrough

Despite providing UEFI vbios rom file, error Invalid PCI ROM header persists
Output and display works fine, except there is nothing before OS boots

vfio-pci 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff

rom-parser reports that this rom is UEFI

Valid ROM signature found @0h, PCIR offset 1ch
        PCIR: type 3 (EFI), vendor: 1f96, device: 0778, class: 000000
        PCIR: revision 3, vendor revision: 0
                EFI: Signature Valid, Subsystem: Boot, Machine: X64
        Last image

Last edited by am_silex (2024-11-14 03:43:06)

Offline

#3 2024-11-15 07:13:56

am_silex
Member
Registered: 2024-11-13
Posts: 6

Re: Intel HD630 GPU Passthrough

Continue answering my initial post and adding details.

Freezes continues even with NVidia GPU (I have old GT 710) and Arch Linux as a guest. I thought, these hangs might be due to iGPU and absence of VBIOS rom file for my MB. However, it turned out that even with dedicated GPU the problem persists.
Yesterday, while reading up forms and post on the Internet, I added Intel microcode package to the guest OS (it's already been installed on the host). The result is 10+ hours steady work. It might be the root cause for the problem, but let's wait and see.

In the same time, Windows guests are working fine without any freezes with iGPU

Last edited by am_silex (2024-11-15 07:19:48)

Offline

#4 2024-11-15 07:17:54

am_silex
Member
Registered: 2024-11-13
Posts: 6

Re: Intel HD630 GPU Passthrough

I'd like to ask experienced users - how to extract IntelGopDriver.efi from MB firmware. UEFITools can parse this firmware, can find MBR video bios and extract it as well as VBT table. But I can't find IntelGopDriver. It might be hidden under GUID.
And final question - how to combine this 2 file to produce a valid uefi-style VBIOS

Offline

#5 2024-11-18 03:44:02

am_silex
Member
Registered: 2024-11-13
Posts: 6

Re: Intel HD630 GPU Passthrough

Random hangs and panics. I believe it related to rtl8169 driver

[  430.945959] Oops: invalid opcode: 0000 [#1] PREEMPT SMP PTI
[  430.946104] CPU: 2 UID: 1000 PID: 26410 Comm: 7z Tainted: G     U  W          6.11.8-arch1-2 #1 1400000003000000474e550014adde1903f711f0
[  430.946257] Tainted: /[U/]=USER, [W]=WARN
[  430.946303] Hardware name: HP HP EliteDesk 800 G3 SFF/8299, BIOS P01 Ver. 02.50 07/17/2024
[  430.946402] RIP: 0010:__dev_queue_xmit+0x981/0xe80
[  430.946467] Code: 00 48 89 df e8 70 4b ff ff be 02 00 00 00 4c 89 f7 e8 f3 ec fd ff b8 9c ff ff ff e9 01 f9 ff ff 83 e8 04 83 f8 01 0f 87 0e fd <ff> ff 4c 89 f7 e8 05 21 fe ff e9 48 ff ff ff f6 c4 01 0f 85 95 03
[  430.946692] RSP: 0000:ffffa369583efc88 EFLAGS: 00010687
[  430.946759] RAX: ffff8a8a0d3b0c00 RBX: 0000000000000000 RCX: ffff8a89d1588b28
[  430.946847] RDX: ffff8a8a0d3b0c00 RSI: 0000000000000000 RDI: ffff8a89d1588b28
[  430.946936] RBP: 0000000000000000 R08: 0000000000000000 R09: ffff8a8edbb258c0
[  430.947025] R10: ffffa369408ff690 R11: 0000000000000000 R12: ffff8a89d1588b28
[  430.947519] R13: ffffa369583efcb0 R14: ffff8a89d1588b28 R15: ffff8a89d5dc1a40
[  430.947606] FS:  00007c525e4ea5c0(0000) GS:ffff8a8edbb00000(0000) knlGS:0000000000000000
[  430.947706] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  430.947780] CR2: 00007c5241e00000 CR3: 000000017b9b8001 CR4: 00000000003706f0
[  430.947867] Call Trace:
[  430.947903]  <TASK>
[  430.947934]  ? __die_body.cold+0x19/0x27
[  430.947982]  ? die+0x2e/0x50
[  430.948024]  ? do_trap+0xca/0x110
[  430.948070]  ? do_error_trap+0x6a/0x90
[  430.948117]  ? __dev_queue_xmit+0x981/0xe80
[  430.948171]  ? exc_invalid_op+0x50/0x70
[  430.948220]  ? __dev_queue_xmit+0x981/0xe80
[  430.948269]  ? asm_exc_invalid_op+0x1a/0x20
[  430.948324]  ? __dev_queue_xmit+0x981/0xe80
[  430.948377]  ? netif_receive_skb_list_internal+0x1d8/0x310
[  430.948444]  ? napi_complete_done+0x72/0x220
[  430.948503]  ? rtl8169_poll+0x468/0x4f0 [r8169 1400000003000000474e5500f1282b189ac51dc7]
[  430.948599]  __napi_poll+0x28/0x160
[  430.948898]  net_rx_action+0x349/0x3e0
[  430.948946]  handle_softirqs+0xe4/0x2a0
[  430.948995]  __irq_exit_rcu+0x97/0xb0
[  430.949040]  sysvec_apic_timer_interrupt+0x3d/0x90
[  430.949104]  asm_sysvec_apic_timer_interrupt+0x1a/0x20
[  430.949168] RIP: 0033:0x7c525d6bb2cb
[  430.949227] Code: 89 47 02 41 0f b7 19 41 89 dc 81 f9 ff ff ff 00 77 11 45 0f b6 02 c1 e0 08 c1 e1 08 49 83 c2 01 44 09 c0 41 89 c8 41 c1 e8 0b <44> 0f af c3 44 39 c0 0f 83 a8 0a 00 00 44 89 dd 29 dd c1 ed 05 44
[  430.949451] RSP: 002b:00007ffe49fcdde0 EFLAGS: 00000203
[  430.949520] RAX: 0000000000f205f6 RBX: 0000000000000271 RCX: 0000000005a89e43
[  430.949609] RDX: 0000000000000006 RSI: 00000000050396ae RDI: 000055b7d5db580c
[  430.949698] RBP: 000055b7d5db25a4 R08: 000000000000b513 R09: 000055b7d5db5812
[  430.949787] R10: 000055b7d5f6cd01 R11: 0000000000000800 R12: 0000000000000271
[  430.949868] R13: 0000000000000000 R14: 0000000000000000 R15: 00000000050396ae
[  430.949960]  </TASK>
[  430.950151] Modules linked in: rfcomm rpcrdma rdma_cm iw_cm ib_cm ib_core bridge stp llc uhid cmac algif_hash algif_skcipher af_alg bnep intel_rapl_msr intel_rapl_common intel_uncore_frequency intel_uncore_frequency_common intel_pmc_core_pltdrv intel_pmc_core intel_vsec pmt_telemetry pmt_class intel_tcc_cooling x86_pkg_temp_thermal intel_powerclamp coretemp snd_soc_avs kvm_intel snd_soc_hda_codec snd_hda_codec_hdmi snd_hda_ext_core crct10dif_pclmul crc32_pclmul polyval_clmulni snd_soc_core snd_hda_codec_conexant polyval_generic snd_hda_codec_generic ghash_clmulni_intel snd_compress sha512_ssse3 ac97_bus sha256_ssse3 snd_pcm_dmaengine sha1_ssse3 aesni_intel btusb snd_hda_intel gf128mul btrtl snd_intel_dspcfg crypto_simd cryptd btintel snd_intel_sdw_acpi iwlwifi rapl btbcm snd_hda_codec intel_cstate r8169 hp_wmi vfat mei_pxp mei_wdt mei_hdcp btmtk snd_hda_core realtek platform_profile fat intel_uncore cfg80211 sparse_keymap snd_hwdep mdio_devres wmi_bmof bluetooth psmouse libphy snd_pcm mei_me pcspkr snd_timer mei snd
[  430.950199]  rfkill soundcore acpi_pad mousedev joydev mac_hid nfsd crypto_user auth_rpcgss nfs_acl lockd grace loop dm_mod sunrpc nfnetlink ip_tables x_tables hid_logitech_hidpp ext4 crc32c_generic crc16 mbcache jbd2 hid_logitech_dj hid_generic usbhid nouveau serio_raw atkbd libps2 vivaldi_fmap drm_ttm_helper nvme gpu_sched crc32c_intel nvme_core xhci_pci drm_gpuvm drm_exec nvme_auth xhci_pci_renesas mxm_wmi i8042 serio kvmgt mdev kvm i915 i2c_algo_bit drm_buddy video wmi ttm intel_gtt drm_display_helper cec vfio_pci vfio_pci_core vfio_iommu_type1 vfio iommufd
[  430.952250] ---[ end trace 0000000000000000 ]---
[  430.952311] RIP: 0010:__dev_queue_xmit+0x981/0xe80
[  430.952375] Code: 00 48 89 df e8 70 4b ff ff be 02 00 00 00 4c 89 f7 e8 f3 ec fd ff b8 9c ff ff ff e9 01 f9 ff ff 83 e8 04 83 f8 01 0f 87 0e fd <ff> ff 4c 89 f7 e8 05 21 fe ff e9 48 ff ff ff f6 c4 01 0f 85 95 03
[  430.952601] RSP: 0000:ffffa369583efc88 EFLAGS: 00010687
[  430.952666] RAX: ffff8a8a0d3b0c00 RBX: 0000000000000000 RCX: ffff8a89d1588b28
[  430.952875] RDX: ffff8a8a0d3b0c00 RSI: 0000000000000000 RDI: ffff8a89d1588b28
[  430.952973] RBP: 0000000000000000 R08: 0000000000000000 R09: ffff8a8edbb258c0
[  430.953061] R10: ffffa369408ff690 R11: 0000000000000000 R12: ffff8a89d1588b28
[  430.953151] R13: ffffa369583efcb0 R14: ffff8a89d1588b28 R15: ffff8a89d5dc1a40
[  430.953241] FS:  00007c525e4ea5c0(0000) GS:ffff8a8edbb00000(0000) knlGS:0000000000000000
[  430.953338] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  430.953410] CR2: 00007c5241e00000 CR3: 000000017b9b8001 CR4: 00000000003706f0
[  430.953503] Kernel panic - not syncing: Fatal exception in interrupt
[  430.953589] Kernel Offset: 0x31c00000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[  430.953723] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---

Offline

#6 2024-11-18 03:45:56

am_silex
Member
Registered: 2024-11-13
Posts: 6

Re: Intel HD630 GPU Passthrough

[ 6186.630109] BUG: unable to handle page fault for address: 0000000000204fa0
[ 6186.630491] #PF: supervisor write access in kernel mode
[ 6186.630566] #PF: error_code(0x0002) - not-present page
[ 6186.630640] PGD 0 P4D 0
[ 6186.630685] Oops: Oops: 0002 [#1] PREEMPT SMP PTI
[ 6186.630760] CPU: 3 UID: 0 PID: 0 Comm: swapper/3 Not tainted 6.11.7-arch1-1 #1 1400000003000000474e5500ee13b5ab63fad4da
[ 6186.630931] Hardware name: HP HP EliteDesk 800 G3 SFF/8299, BIOS P01 Ver. 02.50 07/17/2024
[ 6186.631044] RIP: 0010:_raw_spin_lock+0x17/0x30
[ 6186.631115] Code: 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 0f 1f 44 00 00 65 ff 05 a8 c2 1b 5c 31 c0 ba 01 00 00 00 <f0> 0f b1 17 75 05 c3 cc cc cc cc 89 c6 e8 f7 01 00 00 90 c3 cc cc
[ 6186.631350] RSP: 0018:ffffba6400204f98 EFLAGS: 00010046
[ 6186.631427] RAX: 0000000000000000 RBX: ffff8f6cc104cc00 RCX: 00000001001af23f
[ 6186.631524] RDX: 0000000000000001 RSI: 76ffffffa3e69dc6 RDI: 0000000000204fa0
[ 6186.631622] RBP: 0000000000000001 R08: 0000160bcfc9116a R09: 30c7a363b7c70caf
[ 6186.632020] R10: 0000000000000000 R11: ffffba6400204ff8 R12: ffff8f6cc104cce4
[ 6186.632114] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 6186.632211] FS:  0000000000000000(0000) GS:ffff8f71dbb80000(0000) knlGS:0000000000000000
[ 6186.632322] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 6186.632402] CR2: 0000000000204fa0 CR3: 0000000122476006 CR4: 00000000003706f0
[ 6186.632498] Call Trace:
[ 6186.632539]  <IRQ>
[ 6186.632575]  ? __die_body.cold+0x19/0x27
[ 6186.632637]  ? page_fault_oops+0x15a/0x2d0
[ 6186.632705]  ? exc_page_fault+0x81/0x190
[ 6186.632765]  ? asm_exc_page_fault+0x26/0x30
[ 6186.632831]  ? _raw_spin_lock+0x17/0x30
[ 6186.632894]  handle_irq_event+0x56/0x90
[ 6186.632958]  handle_edge_irq+0x9a/0x260
[ 6186.633019]  __common_interrupt+0x3e/0xa0
[ 6186.633084]  common_interrupt+0x80/0xa0
[ 6186.633196]  </IRQ>
[ 6186.633233]  <TASK>
[ 6186.633266]  asm_common_interrupt+0x26/0x40
[ 6186.633693] RIP: 0010:cpuidle_enter_state+0xc6/0x420
[ 6186.633767] Code: 00 00 e8 7d 53 2d ff e8 28 f1 ff ff 49 89 c5 0f 1f 44 00 00 31 ff e8 39 34 2c ff 45 84 ff 0f 85 aa 01 00 00 fb 0f 1f 44 00 00 <45> 85 f6 0f 88 84 01 00 00 49 63 d6 48 8d 04 52 48 8d 04 82 49 8d
[ 6186.634011] RSP: 0018:ffffba6400147e80 EFLAGS: 00000246
[ 6186.634091] RAX: ffff8f71dbb80000 RBX: 0000000000000002 RCX: 0000000000000000
[ 6186.634196] RDX: 000005a06fe37981 RSI: fffffffdbfe789de RDI: 0000000000000000
[ 6186.634294] RBP: ffff8f71dbbc12c8 R08: 0000000000000004 R09: 000000000000004e
[ 6186.634390] R10: 0000000000000018 R11: ffff8f71dbbb4be4 R12: ffffffffa5152b80
[ 6186.634487] R13: 000005a06fe37981 R14: 0000000000000002 R15: 0000000000000000
[ 6186.634593]  cpuidle_enter+0x2d/0x40
[ 6186.634654]  do_idle+0x1b0/0x210
[ 6186.634711]  cpu_startup_entry+0x29/0x30
[ 6186.634771]  start_secondary+0x11c/0x140
[ 6186.634832]  common_startup_64+0x13e/0x141
[ 6186.634904]  </TASK>
[ 6186.635314] Modules linked in: xt_nat xt_tcpudp veth xt_conntrack xt_MASQUERADE nf_conntrack_netlink xfrm_user xfrm_algo ip6table_nat ip6table_filter ip6_tables iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c xt_addrtype iptable_filter overlay rpcrdma rdma_cm iw_cm ib_cm ib_core bridge stp llc vfat fat intel_rapl_msr intel_rapl_common intel_uncore_frequency intel_uncore_frequency_common intel_pmc_core_pltdrv intel_pmc_core intel_vsec pmt_telemetry pmt_class intel_tcc_cooling x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel snd_soc_avs snd_soc_hda_codec snd_hda_ext_core snd_hda_codec_hdmi kvm snd_hda_codec_conexant snd_soc_core snd_hda_codec_generic crct10dif_pclmul crc32_pclmul snd_compress polyval_clmulni ac97_bus polyval_generic snd_pcm_dmaengine ghash_clmulni_intel snd_hda_intel snd_usb_audio sha512_ssse3 snd_intel_dspcfg sha256_ssse3 snd_intel_sdw_acpi snd_usbmidi_lib sha1_ssse3 snd_ump snd_hda_codec snd_rawmidi aesni_intel iwlwifi snd_hda_core gf128mul snd_seq_device crypto_simd
[ 6186.635473]  snd_hwdep cryptd mc mei_wdt mei_hdcp mei_pxp r8169 snd_pcm rapl cfg80211 realtek intel_cstate snd_timer hp_wmi mdio_devres platform_profileintel_uncore mei_me sparse_keymap psmouse wmi_bmof snd libphy pcspkr rfkill mei soundcore acpi_pad mousedev joydev mac_hid nfsd auth_rpcgss nfs_acl lockd grace crypto_user loop dm_mod sunrpc nfnetlink ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 hid_logitech_hidpp hid_logitech_dj hid_generic usbhid nouveau i915 drm_ttm_helper gpu_sched serio_raw drm_gpuvm atkbd drm_exec libps2 mxm_wmi vivaldi_fmap drm_buddy i2c_algo_bit nvme crc32c_intel intel_gtt ttm nvme_core drm_display_helper nvme_auth xhci_pci cec xhci_pci_renesas video i8042 serio wmi vfio_pci vfio_pci_core vfio_iommu_type1 vfio iommufd
[ 6186.637799] CR2: 0000000000204fa0
[ 6186.637851] ---[ end trace 0000000000000000 ]---
[ 6186.637921] RIP: 0010:_raw_spin_lock+0x17/0x30
[ 6186.637989] Code: 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 0f 1f 44 00 00 65 ff 05 a8 c2 1b 5c 31 c0 ba 01 00 00 00 <f0> 0f b1 17 75 05 c3 cc cc cc cc 89 c6 e8 f7 01 00 00 90 c3 cc cc
[ 6186.638453] RSP: 0018:ffffba6400204f98 EFLAGS: 00010046
[ 6186.638528] RAX: 0000000000000000 RBX: ffff8f6cc104cc00 RCX: 00000001001af23f
[ 6186.638628] RDX: 0000000000000001 RSI: 76ffffffa3e69dc6 RDI: 0000000000204fa0
[ 6186.638724] RBP: 0000000000000001 R08: 0000160bcfc9116a R09: 30c7a363b7c70caf
[ 6186.638818] R10: 0000000000000000 R11: ffffba6400204ff8 R12: ffff8f6cc104cce4
[ 6186.638914] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 6186.639011] FS:  0000000000000000(0000) GS:ffff8f71dbb80000(0000) knlGS:0000000000000000
[ 6186.639121] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 6186.639201] CR2: 0000000000204fa0 CR3: 0000000122476006 CR4: 00000000003706f0
[ 6186.639299] Kernel panic - not syncing: Fatal exception in interrupt
[ 6186.639445] Kernel Offset: 0x22000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 6186.639706] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---

Offline

Board footer

Powered by FluxBB