Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Jan 2025 09:10:32 +0100
From:      Corvin =?ISO-8859-1?Q?K=F6hne?= <corvink@FreeBSD.org>
To:        Peter Wood <peter@alastria.net>, Mario Marietto <marietto2008@gmail.com>
Cc:        freebsd-virtualization@freebsd.org
Subject:   Re: bhyve/passthru for Intel dGPU (ARC A380)?
Message-ID:  <d2e6638855f263e8f613ba06c37e091c710c27be.camel@FreeBSD.org>
In-Reply-To: <CAD-E2icA%2BHkWZJL2JVjU28ECpc8BNG1KXkpQj4Zw5nB8yPfahQ@mail.gmail.com>
References:   <CAD-E2if_q6JreqPWiFBgPc=KHeP12Pq_E2R4m3ZxvGC3g87ZHA@mail.gmail.com> <CA%2B1FSihc5EiBUSFjxoUViAYzZ3qbo%2BqpssrBkuEvQK1=O9W6uw@mail.gmail.com> <CAD-E2icA%2BHkWZJL2JVjU28ECpc8BNG1KXkpQj4Zw5nB8yPfahQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-avojERmarfoZl3SV3vsk
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Peter,

unfortunately, this iGPU stuff is a bit messy. For some reason, Intel is un=
able
to design them in a platform independent way. That's why bhyve has to probe=
 for
it and apply some quirks to it in it's GVT-d code. It's not expected that t=
hose
quirks are required for dedicated GPUs. So, please try to skip the GVT-d ch=
eck
you've already found.

If you want to pass the option rom to the guest, you can use the rom option=
 of
passthru devices:

-s 1/2/3,passthru,1/2/3,rom=3D/path/to/rom


--
Kind regards,
Corvin

On Sun, 2025-01-05 at 10:38 +0000, Peter Wood wrote:
> Hello Mario,
>=20
> Thanks for the response. Interesting, is the expectation that an dGPU ARC
> would work with the gvt-d code in place? Which would reenforce I'm fighti=
ng
> the motherboard/BIOS.
>=20
> The BIOS is infact in CSM, as you've suggested, but for reason - though t=
his
> isn't a -virtualization problem, though I'll explain it for any future re=
ader:
>=20
> My experience of the ROMED8-2T is when in pure UEFI after the FreeBSD loa=
der
> starts the framebuffer console there are no further updates via the AST25=
00 if
> the Intel ARC is present, I suspect the framebuffer is being started on t=
he
> Intel ARC - but I don't have a monitor capable of checking that near the
> server.
>=20
> The BIOS (3.5 and 3.8 checked) only offers configuration of the preferred
> graphical output if the BIOS is CSM, and even then the framebuffer only s=
eems
> to stay on the AST2500 if the video option rom is set to legacy mode.
>=20
> For pure EFI, I haven't dug into loader yet, but what I have observed is =
that
> the ROMED8-2T does not output the EFI variable ConOut, which having a qui=
ck
> read would probably guide the loader where to push the framebuffer. I don=
't
> know if it's possible for me to write that var to EFI, but may be worth
> looking into.
>=20
> As an aside, with CSM (video legacy option rom) I did actually patch bhyv=
e to
> remove the gvt-d check, and the linux guest did boot with the passthru - =
I
> assume with the card in legacy mode... the linux kernel was happy with it
> until it tried to read the option rom, which I haven't exported yet - but=
 I'd
> prefer to fix this the correct way if possible.
>=20
> P.
>=20
>=20
> On Sat, 4 Jan 2025 at 20:34, Mario Marietto <marietto2008@gmail.com> wrot=
e:
> > Hi Peter,
> > =C2=A0
> > Please make sure your GPU is booted in UEFI and not CSM mode. This can =
be
> > changed in the host BIOS.
> > Cheers.=20
> >=20
> >=20
> > On Sat, Jan 4, 2025 at 9:24=E2=80=AFPM Peter Wood <peter@alastria.net> =
wrote:
> > > Happy new year all.
> > >=20
> > > I've been using bhyve happily for a year or two now, multiple machine=
s
> > > with VT-d running happily passing SAS cards and USB cards into VMs.
> > >=20
> > > I've reached the point where I want to pass a GPU in for accelerated
> > > encoding/decoding/etc (scrypted, tdarr, jellyfin). I picked up an Int=
el
> > > ARC A380, as it's encoders/decoders are pretty decent for my use case=
 -
> > > I'd also seen that there had been success with people using the iGPU'=
s in
> > > Intel CPUs successfully.
> > >=20
> > > Unfortunately after attaching the GPUs PCI device to ppt, and attempt=
ing
> > > to start a VM with it attached, I'm greated by an error that seems to
> > > focus on iGPUs?
> > >=20
> > > /usr/sbin/bhyve -A -H -w -u -S -c 2 -m 8G -l com1,/dev/nmdm202B -l
> > > bootrom,/usr/local/share/uefi-
> > > firmware/BHYVE_UEFI.fd,/usr/local/var/cache/bmd/k8s-worker-3.vars -s
> > > 0,hostbridge -s 1,lpc -s 2,nvme,/dev/zvol/vm/k8s-worker-3 -s 3,ahci-
> > > cd,/mnt/vm/isos/ubuntu-24.04-live-server-amd64.iso -s 5,virtio-net,ta=
p9 -s
> > > 4,passthru,4/0/0 -s 6,fbuf,tcp=3D0.0.0.0:6007,w=3D1280,h=3D720,vga=3D=
io -s
> > > 7,xhci,tablet test
> > > bhyve: Warning: Unable to reuse host address of Graphics Stolen Memor=
y.
> > > GPU passthrough might not work properly.
> > > bhyve: gvt_d_setup_opregion: Invalid OpRegion signature
> > > bhyve: gvt_d_init: Unable to setup OpRegion
> > > Device emulation initialization error: No such file or directory
> > >=20
> > > The machine is an AMD EPYC 7343 on a ASRock ROMED8-2T, it has a dedic=
ated
> > > onboard GPU (attached to the BMC), which the BIOS is configured to
> > > encourage operating systems to use as the primary display - and sure
> > > enough the loader and BSD console are presented through the BMCs ASPE=
ED
> > > AST2500.
> > >=20
> > > Digging through the freebsd source tree, it appears that that pci_gvt=
-d.c
> > > is responsible for this, if it's Intel and a Display then attempt the=
 set
> > > up of graphics memory.
> > > https://github.com/freebsd/freebsd-src/blob/b662ca1d6cd82044c6cb79075=
e1830b97594bef3/usr.sbin/bhyve/amd64/pci_gvt-d.c#L44
> > >=20
> > > Has anyone experimented with this? Can I just patch this out, rebuild
> > > bhyve and expect a chance of success?
> > >=20
> > > Cheers,
> > >=20
> > > P.
> > > --=20
> > > Peter Wood
> > > peter@alastria.net
> > >=20
> >=20
> >=20
> > --=20
> > Mario.
>=20
>=20
> --=20
> Peter Wood
> peter@alastria.net
>=20

--=20
Kind regards,
Corvin

--=-avojERmarfoZl3SV3vsk
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEgvRSla3m2t/H2U9G2FTaVjFeAmoFAmd7j/gACgkQ2FTaVjFe
AmrFJg//aR0fFMQwh61Ogs+/d//AkS8XXsYYp6jkEJH3kxec7QvorB1rY/1oYIXn
RwCbMwmk1SwHtkrWhGeUdI/G0sQy6rXV4s4ycEni6NhwTflp2ZnblGDvFAwh/yhT
hS7eU7LXA5R83Hcy7/3EDFK575XaoT+to6c8+lckcbTbmvIuQfgQ5oHxh8nRZb0f
9mpi5ij7zwtcI3Skhu4NfheyXDNaHFPusD/S4O7dCf2NutURtIZDJ/ZUKm9Lt35H
tLBFSlCFnkE+mwLG4FbpBJDNkKlKINaUQJXFaS6YGIFeZZ7P/PMIl7z9y4AuNEox
PLCDFEF95B0sLL183tfUtVhUfv1F5eqE8A+pE1YUGMhf2BbAMYJnQ8iSBV1hH5Cu
vG8NP7IaEkvUm3sltPf6rYtFmNioOaFAvU3bwPItTOjEtUy8+Oied8d51sujOg8F
ZX3Zl4LZ8RUZ/Cpfq2aFlnBEAvHbhXmRO6CVreF8m0rlCwTTeRXNPOr076WCUeoL
9NQQ9bvU37EwhWTrI7S5qtk4J1OU1D17YHC+XUPSivBzffkihoB94hEgRM4rFTEk
DpUGIW2gTP0dOn6GKdyNcULJvW5fU+jgiYZgqCtkULgm9dUv1hEGs5MMGfcFO2YQ
AvSO7qpoFTH948dXViFI/whKX/X7UnsbHEdqC2p+XvwUMep5/e4=
=IEUd
-----END PGP SIGNATURE-----

--=-avojERmarfoZl3SV3vsk--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d2e6638855f263e8f613ba06c37e091c710c27be.camel>