Jump to content

unRAID plugin for iGPU SR-IOV support


Recommended Posts

4 hours ago, alturismo said:

not yet, thanks for the hint, i ll give that a try

 

Parsec has some bugs atm. i use Sunshine and moonlight to acces the VM for gaming and use RDP for desktop use. i spun up a new VM and it works just finde this way.

 

A user a few  sites back, stated that an older verion of Parsec should work.

Edited by domrockt
Link to comment
9 minutes ago, domrockt said:

Parsec has some bugs atm. i use Sunshine and moonlight to acces the VM for gaming and use RDP for desktop use. i spun up a new VM and it works just finde this way.

 

A user a few  sites back, stated that an older verion of Parsec should work.

as the vgpu doesnt start inside the VM, i ll look into HDMI Dummy Test when i find some time ;) didnt found my "dummys" oob yet ... thats the last open point here to look for, rest is looking fine and ok, but ... i ll see and report back if that solved it ;)

  • Like 1
Link to comment
24 minutes ago, ich777 said:

For what plugin? This one? What would be the benefit for you? Are you after Intel ARC GPU support?

 

PLUGIN FOR IGPU SR-IOV 

 

Because I am using VM xpenology sa6400 cannot use igpu and they told me that SR-IOV requires the driver on your hypervisor (Unraid in you case) to be compatible with the one on the guest. From what I observed, the popular i915 driver for unraid https://github.com/zhtengw/unraid-i915-sriov is outdated, and you need to port https://github.com/intel-gpu/intel-gpu-i915-backports to unraid to ensure compatibility with DSM port.

 

Link to comment
21 minutes ago, neunghaha28 said:

the popular i915 driver for unraid https://github.com/zhtengw/unraid-i915-sriov is outdated

I don't use that repository at all, I compile it directly from the source over here.

 

21 minutes ago, neunghaha28 said:

you need to port https://github.com/intel-gpu/intel-gpu-i915-backports to unraid to ensure compatibility with DSM port.

However I think you might need to be on a slightly newer Kernel version than Unraid stable is currently.

I don't want to introduce more complexity by using a backported i915 driver for the SR-IOV plugin which can actually cause more trouble than it solves.

 

I completely understand your specific use case but I really don't want to use a backported driver for the SR-IOV plugin.

  • Thanks 1
Link to comment

@ich777

 

Unraid 6.12.5-rc1

 

dmesg | grep i915
[   55.596957] i915 0000:00:02.0: Running in SR-IOV PF mode
[   55.597687] i915 0000:00:02.0: [drm] VT-d active for gfx access
[   55.597715] i915 0000:00:02.0: vgaarb: deactivate vga console
[   55.597762] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[   55.598539] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[   55.599783] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915])
[   55.602155] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adls_dmc_ver2_01.bin (v2.1)
[   55.638975] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 70.13.1
[   55.638981] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[   55.641655] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads!
[   55.642297] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
[   55.642298] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
[   55.642723] i915 0000:00:02.0: [drm] GuC RC: enabled
[   55.643315] mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915])
[   55.643430] i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized
[   55.644708] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[   55.646402] i915 0000:00:02.0: 7 VFs could be associated with this PF
[   55.646947] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
[   55.648092] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
[   55.648190] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
[   57.898569] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[   57.898644] i915 0000:00:02.1: enabling device (0000 -> 0002)
[   57.898667] i915 0000:00:02.1: Running in SR-IOV VF mode
[   57.899631] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.4 (0000000000000000)
[   57.899708] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Found interface version 0.1.4.1
[   57.901095] i915 0000:00:02.1: [drm] VT-d active for gfx access
[   57.901112] i915 0000:00:02.1: [drm] Using Transparent Hugepages
[   57.901613] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.4 (0000000000000000)
[   57.901626] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Found interface version 0.1.4.1
[   57.901952] i915 0000:00:02.1: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[   57.901954] i915 0000:00:02.1: HuC firmware PRELOADED
[   57.904320] i915 0000:00:02.1: [drm] Protected Xe Path (PXP) protected content support initialized
[   57.904325] i915 0000:00:02.1: [drm] PMU not supported for this GPU.
[   57.904559] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.1 on minor 1
[   57.904829] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[   57.904833] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[   57.904875] i915 0000:00:02.2: enabling device (0000 -> 0002)
[   57.904885] i915 0000:00:02.2: Running in SR-IOV VF mode
[   57.905183] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.4 (0000000000000000)
[   57.905195] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Found interface version 0.1.4.1
[   57.906189] i915 0000:00:02.2: [drm] VT-d active for gfx access
[   57.906200] i915 0000:00:02.2: [drm] Using Transparent Hugepages
[   57.906662] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.4 (0000000000000000)
[   57.906674] i915 0000:00:02.2: [drm] *ERROR* GT0: IOV: Found interface version 0.1.4.1
[   57.906870] i915 0000:00:02.2: GuC firmware PRELOADED version 0.0 submission:SR-IOV VF
[   57.906872] i915 0000:00:02.2: HuC firmware PRELOADED
[   57.909322] i915 0000:00:02.2: [drm] Protected Xe Path (PXP) protected content support initialized
[   57.909326] i915 0000:00:02.2: [drm] PMU not supported for this GPU.
[   57.909526] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.2 on minor 2
[   57.909659] i915 0000:00:02.0: Enabled 2 VFs
[   58.930443] i915 0000:00:02.1: [drm] *ERROR* tlb invalidation response timed out for seqno 23

 

 

diynez-diagnostics-20231123-1736.zip

Link to comment
26 minutes ago, neunghaha28 said:

Unraid 6.12.5-rc1

Sorry but I'm the wrong one to ask here since I don't have hardware on hand to test, however I see in your Diagnostics that all your vGPUs are there:

00:02.0 VGA compatible controller [0300]: Intel Corporation AlderLake-S GT1 [8086:4680] (rev 0c)
	DeviceName: Onboard IGD
	Subsystem: ASUSTeK Computer Inc. AlderLake-S GT1 [1043:8882]
	Kernel driver in use: i915
	Kernel modules: i915
00:02.1 VGA compatible controller [0300]: Intel Corporation AlderLake-S GT1 [8086:4680] (rev 0c)
	Subsystem: ASUSTeK Computer Inc. AlderLake-S GT1 [1043:8882]
	Kernel driver in use: vfio-pci
	Kernel modules: i915
00:02.2 VGA compatible controller [0300]: Intel Corporation AlderLake-S GT1 [8086:4680] (rev 0c)
	Subsystem: ASUSTeK Computer Inc. AlderLake-S GT1 [1043:8882]
	Kernel driver in use: vfio-pci
	Kernel modules: i915

 

Also @domrockt said that it installs fine on 6.12.5-rc1 here:

 

Maybe someone else can help here, again, I only compile the module to make sure that users can make use of Intel Graphics SR-IOV on Unraid.

  • Thanks 1
Link to comment
On 11/22/2023 at 10:35 AM, alturismo said:

as the vgpu doesnt start inside the VM, i ll look into HDMI Dummy Test when i find some time ;) didnt found my "dummys" oob yet ... thats the last open point here to look for, rest is looking fine and ok, but ... i ll see and report back if that solved it ;)

 

Hello alturismo,

 

I had the same Problems like you, i can not start Parsec or Sunshine because the IGPU was not able to output to an Display. I Try it with an HDMI Display connected, but it was not recognized inside the VM so the GPU can not set as output device. The IGPU has no fault, no error 43 or something, it works and was shown in the Device Manager and as a working GPU in the Task Manager. When i start a Program, like Ungine Heaven, it shows a Load in the Task Manager and also in the GPU Statistics on Unraid so basicly the IGPU was working correctly. A Short test with a Docker Container ( Steam Headless ) was working, it shows the connected Display and works nice. I think the Problem has something to do with the Parstrough to the VM, maybe something is missing so that the Display information was not passing to the VM  / Intel IGPU Driver. I have some more Servers with Nvidia GPU´s (Grid K2, Tesla M10, Tesla P4) but i never seen such Problems with the GPU Pastrough to a VM.

 

My CPU is a I3-N305 and the System is a Beelink EQ12 Pro

Edited by Dotmaster5
Link to comment
On 11/23/2023 at 6:06 PM, ich777 said:

Sorry but I'm the wrong one to ask here since I don't have hardware on hand to test, however I see in your Diagnostics that all your vGPUs are there:

00:02.0 VGA compatible controller [0300]: Intel Corporation AlderLake-S GT1 [8086:4680] (rev 0c)
	DeviceName: Onboard IGD
	Subsystem: ASUSTeK Computer Inc. AlderLake-S GT1 [1043:8882]
	Kernel driver in use: i915
	Kernel modules: i915
00:02.1 VGA compatible controller [0300]: Intel Corporation AlderLake-S GT1 [8086:4680] (rev 0c)
	Subsystem: ASUSTeK Computer Inc. AlderLake-S GT1 [1043:8882]
	Kernel driver in use: vfio-pci
	Kernel modules: i915
00:02.2 VGA compatible controller [0300]: Intel Corporation AlderLake-S GT1 [8086:4680] (rev 0c)
	Subsystem: ASUSTeK Computer Inc. AlderLake-S GT1 [1043:8882]
	Kernel driver in use: vfio-pci
	Kernel modules: i915

 

Also @domrockt said that it installs fine on 6.12.5-rc1 here:

 

Maybe someone else can help here, again, I only compile the module to make sure that users can make use of Intel Graphics SR-IOV on Unraid.

 

I recompiled the module with the tools you wrote on github. ERROR found missing.

 

i915-sriov-dkms/drivers/gpu/drm/i915/gt/uc/abi/guc_version_abi.h

latest minor value is 0, change it to 4 and save

 

/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2022 Intel Corporation
 */

#ifndef _ABI_GUC_VERSION_ABI_H
#define _ABI_GUC_VERSION_ABI_H

#define GUC_VF_VERSION_LATEST_MAJOR	1
#define GUC_VF_VERSION_LATEST_MINOR	4

#endif /* _ABI_GUC_VERSION_ABI_H */

 

dmesg | grep i915
[   53.343367] i915 0000:00:02.0: Running in SR-IOV PF mode
[   53.344100] i915 0000:00:02.0: [drm] VT-d active for gfx access
[   53.344128] i915 0000:00:02.0: vgaarb: deactivate vga console
[   53.344176] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[   53.344892] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[   53.345639] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915])
[   53.348899] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adls_dmc_ver2_01.bin (v2.1)
[   53.383256] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/tgl_guc_70.bin version 70.13.1
[   53.383261] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[   53.385904] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads!
[   53.386619] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
[   53.386620] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
[   53.387049] i915 0000:00:02.0: [drm] GuC RC: enabled
[   53.387660] mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915])
[   53.387782] i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized
[   53.389207] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.0 on minor 0
[   53.391052] i915 0000:00:02.0: 7 VFs could be associated with this PF
[   53.391589] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
[   53.392673] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes
[   55.650675] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[   55.650750] i915 0000:00:02.1: enabling device (0000 -> 0002)
[   55.650774] i915 0000:00:02.1: Running in SR-IOV VF mode
[   55.651707] i915 0000:00:02.1: [drm] GT0: GUC: interface version 0.1.4.1
[   55.653301] i915 0000:00:02.1: [drm] VT-d active for gfx access
[   55.653319] i915 0000:00:02.1: [drm] Using Transparent Hugepages
[   55.653783] i915 0000:00:02.1: [drm] GT0: GUC: interface version 0.1.4.1
[   55.654415] i915 0000:00:02.1: GuC firmware PRELOADED version 1.4 submission:SR-IOV VF
[   55.654417] i915 0000:00:02.1: HuC firmware PRELOADED
[   55.656989] i915 0000:00:02.1: [drm] Protected Xe Path (PXP) protected content support initialized
[   55.656994] i915 0000:00:02.1: [drm] PMU not supported for this GPU.
[   55.657173] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.1 on minor 1
[   55.657425] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=io+mem
[   55.657428] i915 0000:00:02.1: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[   55.657467] i915 0000:00:02.2: enabling device (0000 -> 0002)
[   55.657478] i915 0000:00:02.2: Running in SR-IOV VF mode
[   55.657664] i915 0000:00:02.2: [drm] GT0: GUC: interface version 0.1.4.1
[   55.657985] i915 0000:00:02.2: [drm] VT-d active for gfx access
[   55.657997] i915 0000:00:02.2: [drm] Using Transparent Hugepages
[   55.658432] i915 0000:00:02.2: [drm] GT0: GUC: interface version 0.1.4.1
[   55.658932] i915 0000:00:02.2: GuC firmware PRELOADED version 1.4 submission:SR-IOV VF
[   55.658934] i915 0000:00:02.2: HuC firmware PRELOADED
[   55.661674] i915 0000:00:02.2: [drm] Protected Xe Path (PXP) protected content support initialized
[   55.661683] i915 0000:00:02.2: [drm] PMU not supported for this GPU.
[   55.661858] [drm] Initialized i915 1.6.0 20201103 for 0000:00:02.2 on minor 2
[   55.662016] i915 0000:00:02.0: Enabled 2 VFs

 

Edited by neunghaha28
Link to comment
43 minutes ago, neunghaha28 said:

I recompiled the module with the tools you wrote on github. ERROR found missing.

I really don‘t understand. I don‘t have a GitHub repository where any repositories are listed.

 

What is the goal of you recompiling the driver? If you run Unraid virtualized I can‘t give support because that can introduce issues with the underlying Host OS/Bootloader you have to use.

 

If you need DSM why not follow the recommendation from @domrockt?
 

The plugin is working for others.

 

Sorry but I can‘t help if you are virtualizing Unraid since this is a completely special use case and not how you should run this since the plugin/sriov is experimental too!

Link to comment
1 hour ago, ich777 said:

I really don‘t understand. I don‘t have a GitHub repository where any repositories are listed.

 

What is the goal of you recompiling the driver? If you run Unraid virtualized I can‘t give support because that can introduce issues with the underlying Host OS/Bootloader you have to use.

 

If you need DSM why not follow the recommendation from @domrockt?
 

The plugin is working for others.

 

Sorry but I can‘t help if you are virtualizing Unraid since this is a completely special use case and not how you should run this since the plugin/sriov is experimental too!

 

Here I don't mean the DSM problem, I mean the module on unraid 6.12.5rc1 has an error. That's all. If you don't understand, that's fine.

 

Because on unraid 6.12.5rc1 you will see this error.

 

[   57.899631] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Unable to confirm version 1.4 (0000000000000000)
[   57.899708] i915 0000:00:02.1: [drm] *ERROR* GT0: IOV: Found interface version 0.1.4.1

 

I reported the issue GT0: GUC: interface version, that's it, if you don't care then just pass it by.

 

And I'm not asking you to do it for me. If you check with the command dmesg | grep i915 you will find ERROR just as I stated. I think you misunderstood. I'm not asking you to do it for me, I'm just informing you.

 

In which I have told you how to fix this error.

Edited by neunghaha28
  • Thanks 1
Link to comment
9 minutes ago, neunghaha28 said:

Here I don't mean the DSM problem, I mean the module on unraid 6.12.5rc1 has an error.

Thank you for the report but, I just can compile the module because I don't have any hardware on hand to test and I simply can't fix it.

 

You should report that over here: https://github.com/strongtz/i915-sriov-dkms/issues

 

However there seem to be already a few reports about that in the issue tracker from what I can see.

 

9 minutes ago, neunghaha28 said:

I think you misunderstood. I'm not asking you to do it for me, I'm just informing you.

Does something not work in terms of SR-IOV on your machine because of this message?

 

Sorry for the misunderstanding here... :)

Link to comment
13 minutes ago, ich777 said:

Thank you for the report but, I just can compile the module because I don't have any hardware on hand to test and I simply can't fix it.

 

You should report that over here: https://github.com/strongtz/i915-sriov-dkms/issues

 

However there seem to be already a few reports about that in the issue tracker from what I can see.

 

Does something not work in terms of SR-IOV on your machine because of this message?

 

Sorry for the misunderstanding here... :)

 

no problem

Yes, I've seen people report it on https://github.com/strongtz/i915-sriov-dkms/issues


and I have successfully fixed it myself using
https://github.com/ich777/unraid_kernel
And recreate the module from the above solution I mentioned to remove the said error.

I'm sorry that I may have misunderstood and didn't communicate well. I'm not good at English.

Edited by neunghaha28
Link to comment
6 minutes ago, neunghaha28 said:

I'm sorry that I may have misunderstood and didn't communicate well. I'm not good at English.

No worries...

 

6 minutes ago, neunghaha28 said:

and I have successfully fixed it myself using

Nice to see that people make use of that. :)

I hope it was easy to use.

 

6 minutes ago, neunghaha28 said:

And recreate the module from the above solution I mentioned to remove the said error.

Can you please create a PR with the fix in the repository that I've linked so that other people can benefit from that fix too.

  • Like 1
Link to comment

@domrockt just as final feedback, hdmi didnt made it too ;) same result like before.

 

i almost guess its working but not as i expected it (compared to gvt-g)

 

some stuff is using the vgpu, sample, i see perm 3d rendering load on remote connection (rdp)

i see decode when i use a browser for YT Videos

 

but anything else i tested doesnt use the gpu hw accel ...

no hw acc video playback, no hw acc remotes like parsec, tightvnc, no hw acc ffmpeg encode, ...

 

was a nice testrun but sadly not working here with my hardware ASRock N100m, but nice to see its working on the main core series CPU's

Link to comment
1 hour ago, alturismo said:

just as final feedback, hdmi didnt made it too ;) same result like before.

Ok ok just a final suggestion 🙃 i gues. i  had problems with my 12th gen IGPU i could not use HDMI dummy Plugs and Virtual Displays on that so i use that thing 

 

https://www.amazon.de/gp/product/B076SX73LY/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&th=1

 

i pass it to my VM its detected as an Full Blown display WITH HDMI! i can use an HDMI cable now and use it technicly like an Laptop.

 

I tested it again today and it gives me Parsec, Moonlight (what iam using in those screesnhots) and can use handbrake QSV 265 

 

I had to diable low power qicksync in the Handbrake settings 

 

 

1708277909_encode.thumb.png.fcab6b726b616857fd640bd387e11cfb.png

 

23206620_Screenshot2023-11-25132103.thumb.png.e5dd3be4e85b507f169ed8ea8d329801.png

Edited by domrockt
  • Like 2
Link to comment
1 hour ago, domrockt said:

i pass it to my VM its detected as an Full Blown display WITH HDMI! i can use an HDMI cable now and use it technicly like an Laptop.

 

i know, i tested those with gvt-g too, nice Option when you need a Office solution using the iGPU with a VM, but i removed all and all is fine, was just a simple "testflight" to see how sr-iov performs compared to my gvt-g on UHD630 iGPU.

 

as mentioned above, not working as expected and actually, no intention for this test with a Displaylink now ;)

 

but thanks for the Tipp anyway, enjoy your sr-iov VM's, great Solution for the 12th gen up Intel's

  • Thanks 1
Link to comment
Guest
This topic is now closed to further replies.
×
×
  • Create New...