Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Dec 2023 18:35:04 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Warner Losh <imp@freebsd.org>, src-committers <src-committers@freebsd.org>,  "<dev-commits-src-all@freebsd.org>" <dev-commits-src-all@freebsd.org>,  "<dev-commits-src-main@freebsd.org>" <dev-commits-src-main@freebsd.org>
Subject:   Re: git: 773c13c686e4 - main - kldxref: skip .pkgsave files
Message-ID:  <CANCZdfpkEmPrTfU7bbw%2BauWuvvu=DuJf5LbepBzbZxM0_SGbGg@mail.gmail.com>
In-Reply-To: <d6562b38-4770-4ae6-903d-dc00d557ea26@FreeBSD.org>
References:  <202302251737.31PHb2R8072300@gitrepo.freebsd.org> <e30bb1e4-11c7-4829-a7b6-21bfd590e558@FreeBSD.org> <CANCZdfp_Vz-K24%2BkBy1DZhMKoAjJ%2B-Z1m_9wB6DZ24=QTopBiA@mail.gmail.com> <a0746fe6-62b6-4a0a-99ad-d8a0b2e01d09@FreeBSD.org> <CANCZdfozE%2BB721S800eSKQ8eaUgdCC4BcyYXOf4BLEfbgL-34A@mail.gmail.com> <d6562b38-4770-4ae6-903d-dc00d557ea26@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000c77e88060be17a5b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, Dec 6, 2023, 2:53 PM John Baldwin <jhb@freebsd.org> wrote:

> On 12/6/23 1:41 PM, Warner Losh wrote:
> > Hey John,
> >
> > On Wed, Dec 6, 2023 at 2:13=E2=80=AFPM John Baldwin <jhb@freebsd.org> w=
rote:
> >
> >> On 12/6/23 1:02 PM, Warner Losh wrote:
> >>> On Wed, Dec 6, 2023, 1:04 PM John Baldwin <jhb@freebsd.org> wrote:
> >>>
> >>>> On 2/25/23 9:37 AM, Warner Losh wrote:
> >>>>> The branch main has been updated by imp:
> >>>>>
> >>>>> URL:
> >>>>
> >>
> https://cgit.FreeBSD.org/src/commit/?id=3D773c13c686e4b6ae9dbbc150b342b82=
c3f47d73a
> >>>>>
> >>>>> commit 773c13c686e4b6ae9dbbc150b342b82c3f47d73a
> >>>>> Author:     Mina Gali=C4=87 <freebsd@igalic.co>
> >>>>> AuthorDate: 2023-02-25 17:31:58 +0000
> >>>>> Commit:     Warner Losh <imp@FreeBSD.org>
> >>>>> CommitDate: 2023-02-25 17:35:43 +0000
> >>>>>
> >>>>>        kldxref: skip .pkgsave files
> >>>>>
> >>>>>        This should help people transitioning from traditional setup=
s
> to
> >>>> pkgbase
> >>>>>        experience a lot less friction.
> >>>>>
> >>>>>        We do this by skipping all files containing two dots.
> >>>>>
> >>>>>        Reviewed by: imp
> >>>>>        Pull Request: https://github.com/freebsd/freebsd-src/pull/66=
1
> >>>>>        Differential Revision: https://reviews.freebsd.org/D27959
> >>>>
> >>>> This restriction is too broad and omits all of the modern wifi
> firmware
> >>>> klds from linker.hints, e.g.
> >>>>
> >>>> /boot/kernel/iwlwifi-3160-17.ucode.ko
> >>>> /boot/kernel/iwlwifi-3168-29.ucode.ko
> >>>> /boot/kernel/iwlwifi-7260-17.ucode.ko
> >>>> /boot/kernel/iwlwifi-7265-17.ucode.ko
> >>>> /boot/kernel/iwlwifi-7265D-29.ucode.ko
> >>>> /boot/kernel/iwlwifi-8000C-36.ucode.ko
> >>>> /boot/kernel/iwlwifi-8265-36.ucode.ko
> >>>> /boot/kernel/iwlwifi-9000-pu-b0-jf-b0-46.ucode.ko
> >>>> /boot/kernel/iwlwifi-9260-th-b0-jf-b0-46.ucode.ko
> >>>> /boot/kernel/iwlwifi-Qu-b0-hr-b0-77.ucode.ko
> >>>> /boot/kernel/iwlwifi-Qu-b0-jf-b0-77.ucode.ko
> >>>> /boot/kernel/iwlwifi-Qu-c0-hr-b0-77.ucode.ko
> >>>> /boot/kernel/iwlwifi-Qu-c0-jf-b0-77.ucode.ko
> >>>> /boot/kernel/iwlwifi-QuZ-a0-hr-b0-77.ucode.ko
> >>>> /boot/kernel/iwlwifi-QuZ-a0-jf-b0-77.ucode.ko
> >>>> /boot/kernel/iwlwifi-cc-a0-77.ucode.ko
> >>>> /boot/kernel/iwlwifi-so-a0-gf-a0-83.ucode.ko
> >>>> /boot/kernel/iwlwifi-so-a0-gf-a0.pnvm.ko
> >>>> /boot/kernel/iwlwifi-so-a0-gf4-a0-83.ucode.ko
> >>>> /boot/kernel/iwlwifi-so-a0-gf4-a0.pnvm.ko
> >>>> /boot/kernel/iwlwifi-so-a0-hr-b0-81.ucode.ko
> >>>> /boot/kernel/iwlwifi-so-a0-jf-b0-77.ucode.ko
> >>>> /boot/kernel/iwlwifi-ty-a0-gf-a0-83.ucode.ko
> >>>> /boot/kernel/iwlwifi-ty-a0-gf-a0.pnvm.ko
> >>>> /boot/kernel/rtw8723d_fw.bin.ko
> >>>> /boot/kernel/rtw8821c_fw.bin.ko
> >>>> /boot/kernel/rtw8822b_fw.bin.ko
> >>>> /boot/kernel/rtw8822c_fw.bin.ko
> >>>> /boot/kernel/rtw8822c_wow_fw.bin.ko
> >>>>
> >>>> all match this pattern and are skipped.
> >>>>
> >>>> I'm busy rewriting a bunch of kldxref to be a cross tool using libel=
f,
> >>>> but I think here you want to probably revert this and just add pkgsa=
ve
> >>>> to the list of "known bad" suffixes.
> >>>>
> >>>
> >>> Sure. Any reason to not just require .ko? Or do we have to index the
> >> kernel
> >>> too?
> >>
> >> We do index the kernel as well, yes.  However, we could probably get b=
y
> >> with "kernel" and ends in ".ko" as a valid set of files.  This would
> also
> >> avoid bogusly warning about linker.hints not being a valid ELF file on
> >> re-runs if you use -v.
> >>
> >
> > Yea, that sounds good. I'll code it up and add you to the review.
> >
> > But why does it matter for these? Firmware is usually loaded by filenam=
e
> > and need not be elf... or are these wrapped in elf sections...
> >
> > I haven't noticed it breaking my linuxkpi wifi driver that have
> autoloaded
> > firmware...
>
> Hmm, afaik firmwares are loaded by "module name" where a firmware .ko
> contains
> one or more of the firmware modules.  We happen today to generally only
> store one module in a single .ko (and with the same name), and in that ca=
se
> kern_linker.c may fallback to just trying to load "foo".ko if it doesn't
> find
> an entry in linker.hints, but if that is why it is working that is
> certainly
> by happy accident.
>
> I only found this by comparing klxref output btw on a stale i386 VM betwe=
en
> the native kldxref in the VM (before this change) and my cross-arch versi=
on
> of kldxref.
>

Ok. That all makes sense. I'll update my working tree tomorrow with the
revert and the replacement. Since it "works" today, I'll push the revert
and the fix at the same time unless the review takes too long.

Warner

--=20
> John Baldwin
>
>

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

<div dir=3D"auto"><div><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"gmail_attr">On Wed, Dec 6, 2023, 2:53 PM John Baldwin &lt;<a href=
=3D"mailto:jhb@freebsd.org">jhb@freebsd.org</a>&gt; wrote:<br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex">On 12/6/23 1:41 PM, Warner Losh wrote:<br>
&gt; Hey John,<br>
&gt; <br>
&gt; On Wed, Dec 6, 2023 at 2:13=E2=80=AFPM John Baldwin &lt;<a href=3D"mai=
lto:jhb@freebsd.org" target=3D"_blank" rel=3D"noreferrer">jhb@freebsd.org</=
a>&gt; wrote:<br>
&gt; <br>
&gt;&gt; On 12/6/23 1:02 PM, Warner Losh wrote:<br>
&gt;&gt;&gt; On Wed, Dec 6, 2023, 1:04 PM John Baldwin &lt;<a href=3D"mailt=
o:jhb@freebsd.org" target=3D"_blank" rel=3D"noreferrer">jhb@freebsd.org</a>=
&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On 2/25/23 9:37 AM, Warner Losh wrote:<br>
&gt;&gt;&gt;&gt;&gt; The branch main has been updated by imp:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; URL:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt; <a href=3D"https://cgit.FreeBSD.org/src/commit/?id=3D773c13c686e4b=
6ae9dbbc150b342b82c3f47d73a" rel=3D"noreferrer noreferrer" target=3D"_blank=
">https://cgit.FreeBSD.org/src/commit/?id=3D773c13c686e4b6ae9dbbc150b342b82=
c3f47d73a</a><br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; commit 773c13c686e4b6ae9dbbc150b342b82c3f47d73a<br>
&gt;&gt;&gt;&gt;&gt; Author:=C2=A0 =C2=A0 =C2=A0Mina Gali=C4=87 &lt;<a href=
=3D"mailto:freebsd@igalic.co" target=3D"_blank" rel=3D"noreferrer">freebsd@=
igalic.co</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; AuthorDate: 2023-02-25 17:31:58 +0000<br>
&gt;&gt;&gt;&gt;&gt; Commit:=C2=A0 =C2=A0 =C2=A0Warner Losh &lt;imp@FreeBSD=
.org&gt;<br>
&gt;&gt;&gt;&gt;&gt; CommitDate: 2023-02-25 17:35:43 +0000<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 kldxref: skip .pkgsave file=
s<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 This should help people tra=
nsitioning from traditional setups to<br>
&gt;&gt;&gt;&gt; pkgbase<br>
&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 experience a lot less frict=
ion.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 We do this by skipping all =
files containing two dots.<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 Reviewed by: imp<br>
&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 Pull Request: <a href=3D"ht=
tps://github.com/freebsd/freebsd-src/pull/661" rel=3D"noreferrer noreferrer=
" target=3D"_blank">https://github.com/freebsd/freebsd-src/pull/661</a><br>;
&gt;&gt;&gt;&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 Differential Revision: <a h=
ref=3D"https://reviews.freebsd.org/D27959" rel=3D"noreferrer noreferrer" ta=
rget=3D"_blank">https://reviews.freebsd.org/D27959</a><br>;
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; This restriction is too broad and omits all of the modern =
wifi firmware<br>
&gt;&gt;&gt;&gt; klds from linker.hints, e.g.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-3160-17.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-3168-29.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-7260-17.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-7265-17.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-7265D-29.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-8000C-36.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-8265-36.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-9000-pu-b0-jf-b0-46.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-9260-th-b0-jf-b0-46.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-Qu-b0-hr-b0-77.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-Qu-b0-jf-b0-77.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-Qu-c0-hr-b0-77.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-Qu-c0-jf-b0-77.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-QuZ-a0-hr-b0-77.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-QuZ-a0-jf-b0-77.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-cc-a0-77.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-so-a0-gf-a0-83.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-so-a0-gf-a0.pnvm.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-so-a0-gf4-a0-83.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-so-a0-gf4-a0.pnvm.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-so-a0-hr-b0-81.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-so-a0-jf-b0-77.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-ty-a0-gf-a0-83.ucode.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/iwlwifi-ty-a0-gf-a0.pnvm.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/rtw8723d_fw.bin.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/rtw8821c_fw.bin.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/rtw8822b_fw.bin.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/rtw8822c_fw.bin.ko<br>
&gt;&gt;&gt;&gt; /boot/kernel/rtw8822c_wow_fw.bin.ko<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; all match this pattern and are skipped.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I&#39;m busy rewriting a bunch of kldxref to be a cross to=
ol using libelf,<br>
&gt;&gt;&gt;&gt; but I think here you want to probably revert this and just=
 add pkgsave<br>
&gt;&gt;&gt;&gt; to the list of &quot;known bad&quot; suffixes.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Sure. Any reason to not just require .ko? Or do we have to ind=
ex the<br>
&gt;&gt; kernel<br>
&gt;&gt;&gt; too?<br>
&gt;&gt;<br>
&gt;&gt; We do index the kernel as well, yes.=C2=A0 However, we could proba=
bly get by<br>
&gt;&gt; with &quot;kernel&quot; and ends in &quot;.ko&quot; as a valid set=
 of files.=C2=A0 This would also<br>
&gt;&gt; avoid bogusly warning about linker.hints not being a valid ELF fil=
e on<br>
&gt;&gt; re-runs if you use -v.<br>
&gt;&gt;<br>
&gt; <br>
&gt; Yea, that sounds good. I&#39;ll code it up and add you to the review.<=
br>
&gt; <br>
&gt; But why does it matter for these? Firmware is usually loaded by filena=
me<br>
&gt; and need not be elf... or are these wrapped in elf sections...<br>
&gt; <br>
&gt; I haven&#39;t noticed it breaking my linuxkpi wifi driver that have au=
toloaded<br>
&gt; firmware...<br>
<br>
Hmm, afaik firmwares are loaded by &quot;module name&quot; where a firmware=
 .ko contains<br>
one or more of the firmware modules.=C2=A0 We happen today to generally onl=
y<br>
store one module in a single .ko (and with the same name), and in that case=
<br>
kern_linker.c may fallback to just trying to load &quot;foo&quot;.ko if it =
doesn&#39;t find<br>
an entry in linker.hints, but if that is why it is working that is certainl=
y<br>
by happy accident.<br>
<br>
I only found this by comparing klxref output btw on a stale i386 VM between=
<br>
the native kldxref in the VM (before this change) and my cross-arch version=
<br>
of kldxref.<br></blockquote></div></div><div dir=3D"auto"><br></div><div di=
r=3D"auto">Ok. That all makes sense. I&#39;ll update my working tree tomorr=
ow with the revert and the replacement. Since it &quot;works&quot; today, I=
&#39;ll push the revert and the fix at the same time unless the review take=
s too long.</div><div dir=3D"auto"><br></div><div dir=3D"auto">Warner=C2=A0=
</div><div dir=3D"auto"><br></div><div dir=3D"auto"><div class=3D"gmail_quo=
te"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">
-- <br>
John Baldwin<br>
<br>
</blockquote></div></div></div>

--000000000000c77e88060be17a5b--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfpkEmPrTfU7bbw%2BauWuvvu=DuJf5LbepBzbZxM0_SGbGg>