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 <<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> > On Wed, Feb 22, 2023 at 04:29:40PM -0800, John-Mark Gurney wrote:<br> > > Konstantin Belousov wrote this message on Wed, Feb 22, 2023 at 12= :44 +0200:<br> > > > On Tue, Feb 21, 2023 at 10:22:41PM -0700, Warner Losh wrote:= <br> > > > > On Tue, Feb 21, 2023 at 9:06 PM John-Mark Gurney <<a= href=3D"mailto:jmg@funkthat.com" target=3D"_blank">jmg@funkthat.com</a>>= ; wrote:<br> > > > > <br> > > > > > Hello,<br> > > > > ><br> > > > > > 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> > > > > > SMBIOS work on arm64 systems (specifically under q= emu, but likely it may<br> > > > > > add support for other EFI arm64 systems that have = SMBIOS as well).<br> > > > > ><br> > > > > > The goal is to support identifying that we are run= ning as a guest under<br> > > > > > QEMU so that we automatically switch to hz=3D100 o= n arm64.<br> > > > > ><br> > > > > > Currently there is code in x86/x86/identcpu.c that= has code to identify<br> > > > > > hypervisers via SMBIOS, so I'd like to move mo= st of identify_hypervisor<br> > > > > > to a new location so that arm64 code can call it a= s well.<br> > > > > ><br> > > > > > Where should I put it?=C2=A0 kern/subr_identsmbios= .c?=C2=A0 And make it optional<br> > > > > > on EFIRT for arm64 and standard on x86?<br> > > > > <br> > > > > I'd do kern/subr_smbios.c.<br> > > > > <br> > > > > I'd be tempted to make it standard, since EFI is ba= sically required for<br> > > > > arm64. It's not dependent at all on efi run time su= pport.<br> > > > Why not extend existing sys/dev/smbios?<br> > > <br> > > Because it's not a device like dev says it should be.<br> > dev/ does not imply that code from there needs either cdev or newbus<b= r> > attachment,it is for code that is to handle platform or device.=C2=A0 = smbios<br> > fits perfectly into this description.<br> > <br> > Biggest example is dev/efidev, with its efirt/efirtc stuff.<br> > Second would be dev/smbios.<br> <br> smbios isn't a good example, just a FYI, it IS a device driver, and<br> it doesn't do anything except reserve a resource...<br></blockquote><di= v><br></div><div>I think what he'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= 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"> > In fact, there is even stuff like dev/{xz,zlib}.<br> <br> Ok, I was just going on what sys/README.md says, I'll update that to<br= > make it clear that it isn'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's more subtle than that...</div><div>It'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"All that I will do, has been done, All that I hav= e, has not."<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>