Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Feb 2023 23:38:03 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Konstantin Belousov <kostikbel@gmail.com>, Warner Losh <imp@bsdimp.com>, freebsd-arch@freebsd.org
Subject:   Re: making identify_hypervisor arch independent
Message-ID:  <CANCZdfqZit6JbqZczJz4scUF4t9-6PW5pWAkrZDpv_VYyQ2mxA@mail.gmail.com>
In-Reply-To: <20230224052758.GT95670@funkthat.com>
References:  <20230222040556.GP95670@funkthat.com> <CANCZdfox_xLs9c%2BmxPriWQ7qymiF%2BNHqNHk_TEtvswswav2oYg@mail.gmail.com> <Y/Xx%2B5YqhS8TuekK@kib.kiev.ua> <20230223002940.GS95670@funkthat.com> <Y/bxSvgJFVukYa0N@kib.kiev.ua> <20230224052758.GT95670@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--0000000000008a474505f56c5f03
Content-Type: text/plain; charset="UTF-8"

On Thu, Feb 23, 2023 at 10:28 PM John-Mark Gurney <jmg@funkthat.com> wrote:

> Konstantin Belousov wrote this message on Thu, Feb 23, 2023 at 06:53 +0200:
> > On Wed, Feb 22, 2023 at 04:29:40PM -0800, John-Mark Gurney wrote:
> > > Konstantin Belousov wrote this message on Wed, Feb 22, 2023 at 12:44
> +0200:
> > > > On Tue, Feb 21, 2023 at 10:22:41PM -0700, Warner Losh wrote:
> > > > > On Tue, Feb 21, 2023 at 9:06 PM John-Mark Gurney <jmg@funkthat.com>
> wrote:
> > > > >
> > > > > > Hello,
> > > > > >
> > > > > > I have a pending diff (https://reviews.freebsd.org/D38721) that
> will make
> > > > > > SMBIOS work on arm64 systems (specifically under qemu, but
> likely it may
> > > > > > add support for other EFI arm64 systems that have SMBIOS as
> well).
> > > > > >
> > > > > > The goal is to support identifying that we are running as a
> guest under
> > > > > > QEMU so that we automatically switch to hz=100 on arm64.
> > > > > >
> > > > > > Currently there is code in x86/x86/identcpu.c that has code to
> identify
> > > > > > hypervisers via SMBIOS, so I'd like to move most of
> identify_hypervisor
> > > > > > to a new location so that arm64 code can call it as well.
> > > > > >
> > > > > > Where should I put it?  kern/subr_identsmbios.c?  And make it
> optional
> > > > > > on EFIRT for arm64 and standard on x86?
> > > > >
> > > > > I'd do kern/subr_smbios.c.
> > > > >
> > > > > I'd be tempted to make it standard, since EFI is basically
> required for
> > > > > arm64. It's not dependent at all on efi run time support.
> > > > Why not extend existing sys/dev/smbios?
> > >
> > > Because it's not a device like dev says it should be.
> > dev/ does not imply that code from there needs either cdev or newbus
> > attachment,it is for code that is to handle platform or device.  smbios
> > fits perfectly into this description.
> >
> > Biggest example is dev/efidev, with its efirt/efirtc stuff.
> > Second would be dev/smbios.
>
> smbios isn't a good example, just a FYI, it IS a device driver, and
> it doesn't do anything except reserve a resource...
>

I think what he's saying is that we should take a page from what
efi is doing, though and have the parsing routines in dev/smbios
as separate files. ACPI also has a lot of code that's called well
in advance of the bus probe / attach and that code lives in dev/acpica.
Earlier in the thread I think I steered you wrong...


> > In fact, there is even stuff like dev/{xz,zlib}.
>
> Ok, I was just going on what sys/README.md says, I'll update that to
> make it clear that it isn't just for device drivers, and is any arch
> independent code.
>

well, not any arch independent code... It's more subtle than that...
It's for arch independent code that implements an arch independent
specification.



> --
>   John-Mark Gurney                              Voice: +1 415 225 5579
>
>      "All that I will do, has been done, All that I have, has not."
>

--0000000000008a474505f56c5f03
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Thu, Feb 23, 2023 at 10:28 PM John=
-Mark Gurney &lt;<a href=3D"mailto:jmg@funkthat.com">jmg@funkthat.com</a>&g=
t; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p=
x 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Konsta=
ntin Belousov wrote this message on Thu, Feb 23, 2023 at 06:53 +0200:<br>
&gt; On Wed, Feb 22, 2023 at 04:29:40PM -0800, John-Mark Gurney wrote:<br>
&gt; &gt; Konstantin Belousov wrote this message on Wed, Feb 22, 2023 at 12=
:44 +0200:<br>
&gt; &gt; &gt; On Tue, Feb 21, 2023 at 10:22:41PM -0700, Warner Losh wrote:=
<br>
&gt; &gt; &gt; &gt; On Tue, Feb 21, 2023 at 9:06 PM John-Mark Gurney &lt;<a=
 href=3D"mailto:jmg@funkthat.com" target=3D"_blank">jmg@funkthat.com</a>&gt=
; wrote:<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; &gt; Hello,<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I have a pending diff (<a href=3D"https://reviews.=
freebsd.org/D38721" rel=3D"noreferrer" target=3D"_blank">https://reviews.fr=
eebsd.org/D38721</a>) that will make<br>
&gt; &gt; &gt; &gt; &gt; SMBIOS work on arm64 systems (specifically under q=
emu, but likely it may<br>
&gt; &gt; &gt; &gt; &gt; add support for other EFI arm64 systems that have =
SMBIOS as well).<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; The goal is to support identifying that we are run=
ning as a guest under<br>
&gt; &gt; &gt; &gt; &gt; QEMU so that we automatically switch to hz=3D100 o=
n arm64.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Currently there is code in x86/x86/identcpu.c that=
 has code to identify<br>
&gt; &gt; &gt; &gt; &gt; hypervisers via SMBIOS, so I&#39;d like to move mo=
st of identify_hypervisor<br>
&gt; &gt; &gt; &gt; &gt; to a new location so that arm64 code can call it a=
s well.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Where should I put it?=C2=A0 kern/subr_identsmbios=
.c?=C2=A0 And make it optional<br>
&gt; &gt; &gt; &gt; &gt; on EFIRT for arm64 and standard on x86?<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; I&#39;d do kern/subr_smbios.c.<br>
&gt; &gt; &gt; &gt; <br>
&gt; &gt; &gt; &gt; I&#39;d be tempted to make it standard, since EFI is ba=
sically required for<br>
&gt; &gt; &gt; &gt; arm64. It&#39;s not dependent at all on efi run time su=
pport.<br>
&gt; &gt; &gt; Why not extend existing sys/dev/smbios?<br>
&gt; &gt; <br>
&gt; &gt; Because it&#39;s not a device like dev says it should be.<br>
&gt; dev/ does not imply that code from there needs either cdev or newbus<b=
r>
&gt; attachment,it is for code that is to handle platform or device.=C2=A0 =
smbios<br>
&gt; fits perfectly into this description.<br>
&gt; <br>
&gt; Biggest example is dev/efidev, with its efirt/efirtc stuff.<br>
&gt; Second would be dev/smbios.<br>
<br>
smbios isn&#39;t a good example, just a FYI, it IS a device driver, and<br>
it doesn&#39;t do anything except reserve a resource...<br></blockquote><di=
v><br></div><div>I think what he&#39;s saying is that we should take a page=
 from what</div><div>efi is doing, though and have the parsing routines in =
dev/smbios</div><div>as separate files. ACPI also has a lot of code that&#3=
9;s called well</div><div>in advance of the bus probe / attach and that cod=
e lives in dev/acpica.</div><div>Earlier in the thread I think I steered yo=
u wrong...<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex">
&gt; In fact, there is even stuff like dev/{xz,zlib}.<br>
<br>
Ok, I was just going on what sys/README.md says, I&#39;ll update that to<br=
>
make it clear that it isn&#39;t just for device drivers, and is any arch<br=
>
independent code.<br></blockquote><div><br></div><div>well, not any arch in=
dependent code... It&#39;s more subtle than that...</div><div>It&#39;s for =
arch independent code that implements an arch independent</div><div>specifi=
cation.</div><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204=
);padding-left:1ex">
-- <br>
=C2=A0 John-Mark Gurney=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Voice: +1 415 225 5579=
<br>
<br>
=C2=A0 =C2=A0 =C2=A0&quot;All that I will do, has been done, All that I hav=
e, has not.&quot;<br>
</blockquote></div></div>

--0000000000008a474505f56c5f03--



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