Date: Thu, 07 Nov 2024 16:43:49 +0100 From: Kristof Provost <kp@FreeBSD.org> To: Alan Somers <asomers@freebsd.org> Cc: =?utf-8?q?Olivier_Cochard-Labb=C3=A9?= <olivier@freebsd.org>, Igor Ostapenko <igoro@freebsd.org>, freebsd-testing@freebsd.org, freebsd-hackers@freebsd.org Subject: Re: RFC: Add required_klds metadata to Kyua Message-ID: <AB449214-89D5-49AF-A74E-04210882201D@FreeBSD.org> In-Reply-To: <CAOtMX2j%2BXFL_9CNi0iKUg9aCcH_0dNqzszC=M5wPPy6yhs57Rg@mail.gmail.com> References: <9fc6fc72-4c2c-4b09-bdb5-122a49b45295@FreeBSD.org> <CA%2Bq%2BTcpLeVqHhtL7VHvWsijQO9sxewY5opeUQ895G43EC24qgg@mail.gmail.com> <9975A26D-6AB4-433F-B4B2-515F956BF366@FreeBSD.org> <CAOtMX2j%2BXFL_9CNi0iKUg9aCcH_0dNqzszC=M5wPPy6yhs57Rg@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--=_MailMate_E1688D6D-F804-4D3F-B9BC-1BE59FE56D88_= Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 7 Nov 2024, at 16:16, Alan Somers wrote: > I too like the idea of Project A with required_klds or required_kmods. > But how would you handle situations where a user customizes their > kernel config to build some feature that's usually a module directly > into the kernel? I would think that would break any test using > required_klds. > That’s actually fine if we use `kldstat -m` or modfind(). It’ll still find a “module” even when it’s built into the kernel. For example, pfsense builds pf into the kernel: [24.11-BETA][root@pfSense.jupiter.sigsegv.be]/root: kldstat Id Refs Address Size Name 1 19 0xffff000000000000 28e4d90 kernel 2 1 0xffff0000028e5000 46e278 zfs.ko 3 1 0xffff000002d54000 3e258 opensolaris.ko 4 1 0xffff0000b1c00000 27000 safexcel.ko 5 1 0xffff0000b1c27000 26000 cryptodev.ko [24.11-BETA][root@pfSense.jupiter.sigsegv.be]/root: kldstat -m pf Id Refs Name 440 1 pf Or when it actually is a module: freebsd_current_zfs# kldstat Id Refs Address Size Name 1 48 0xffffffff80200000 1f75b10 kernel 2 1 0xffffffff82176000 6320 filemon.ko 3 1 0xffffffff8217d000 78fdf8 zfs.ko 4 1 0xffffffff83010000 2a68 mac_ntpd.ko 5 3 0xffffffff83013000 5adc0 pf.ko 6 1 0xffffffff8306e000 9688 pfsync.ko 7 1 0xffffffff83078000 2260 pflog.ko 8 1 0xffffffff8307b000 128a0 dummynet.ko 9 1 0xffffffff8308e000 9890 carp.ko 10 1 0xffffffff83098000 18148 ipsec.ko 11 1 0xffffffff830b1000 7bf98 sctp.ko 12 1 0xffffffff8312d000 2568 ipdivert.ko 13 1 0xffffffff83130000 88d8 if_bridge.ko 14 1 0xffffffff83139000 5120 bridgestp.ko 15 1 0xffffffff8313f000 52a4 if_epair.ko freebsd_current_zfs# kldstat -m pf Id Refs Name 506 1 pf freebsd_current_zfs# kldunload pfsync freebsd_current_zfs# kldunload pflog freebsd_current_zfs# kldunload pf freebsd_current_zfs# kldstat -m pf kldstat: can't find module pf: No such file or directory — Kristof --=_MailMate_E1688D6D-F804-4D3F-B9BC-1BE59FE56D88_= Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <!DOCTYPE html> <html> <head> <meta http-equiv=3D"Content-Type" content=3D"text/xhtml; charset=3Dutf-8"= > </head> <body><div style=3D"font-family: sans-serif;"><div class=3D"markdown" sty= le=3D"white-space: normal;"> <p dir=3D"auto">On 7 Nov 2024, at 16:16, Alan Somers wrote:</p> </div><div class=3D"plaintext" style=3D"white-space: normal;"><blockquote= style=3D"margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #136= BCE; color: #136BCE;"><p dir=3D"auto">I too like the idea of Project A wi= th required_klds or required_kmods. <br> But how would you handle situations where a user customizes their <br> kernel config to build some feature that's usually a module directly <br> into the kernel? I would think that would break any test using <br> required_klds.</p> <br></blockquote></div> <div class=3D"markdown" style=3D"white-space: normal;"> <p dir=3D"auto">That=E2=80=99s actually fine if we use <code style=3D"pad= ding: 0 0.25em; background-color: #E4E4E4;">kldstat -m</code> or modfind(= ). It=E2=80=99ll still find a =E2=80=9Cmodule=E2=80=9D even when it=E2=80= =99s built into the kernel.</p> <p dir=3D"auto">For example, pfsense builds pf into the kernel:</p> <pre style=3D"margin-left: 15px; margin-right: 15px; padding: 5px; border= : thin solid gray; overflow-x: auto; max-width: 90vw; background-color: #= E4E4E4;"><code style=3D"padding: 0 0.25em; background-color: #E4E4E4;">[2= 4.11-BETA][root@pfSense.jupiter.sigsegv.be]/root: kldstat Id Refs Address Size Name 1 19 0xffff000000000000 28e4d90 kernel 2 1 0xffff0000028e5000 46e278 zfs.ko 3 1 0xffff000002d54000 3e258 opensolaris.ko 4 1 0xffff0000b1c00000 27000 safexcel.ko 5 1 0xffff0000b1c27000 26000 cryptodev.ko [24.11-BETA][root@pfSense.jupiter.sigsegv.be]/root: kldstat -m pf Id Refs Name 440 1 pf </code></pre> <p dir=3D"auto">Or when it actually is a module:</p> <pre style=3D"margin-left: 15px; margin-right: 15px; padding: 5px; border= : thin solid gray; overflow-x: auto; max-width: 90vw; background-color: #= E4E4E4;"><code style=3D"padding: 0 0.25em; background-color: #E4E4E4;">fr= eebsd_current_zfs# kldstat Id Refs Address Size Name 1 48 0xffffffff80200000 1f75b10 kernel 2 1 0xffffffff82176000 6320 filemon.ko 3 1 0xffffffff8217d000 78fdf8 zfs.ko 4 1 0xffffffff83010000 2a68 mac_ntpd.ko 5 3 0xffffffff83013000 5adc0 pf.ko 6 1 0xffffffff8306e000 9688 pfsync.ko 7 1 0xffffffff83078000 2260 pflog.ko 8 1 0xffffffff8307b000 128a0 dummynet.ko 9 1 0xffffffff8308e000 9890 carp.ko 10 1 0xffffffff83098000 18148 ipsec.ko 11 1 0xffffffff830b1000 7bf98 sctp.ko 12 1 0xffffffff8312d000 2568 ipdivert.ko 13 1 0xffffffff83130000 88d8 if_bridge.ko 14 1 0xffffffff83139000 5120 bridgestp.ko 15 1 0xffffffff8313f000 52a4 if_epair.ko freebsd_current_zfs# kldstat -m pf Id Refs Name 506 1 pf freebsd_current_zfs# kldunload pfsync = = fr= eebsd_current_zfs# kldunload pflog freebsd_current_zfs# kldunload pf freebsd_current_zfs# kldstat -m pf kldstat: can't find module pf: No such file or directory </code></pre> <p dir=3D"auto">=E2=80=94<br> Kristof</p> </div> </div> </body> </html> --=_MailMate_E1688D6D-F804-4D3F-B9BC-1BE59FE56D88_=--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AB449214-89D5-49AF-A74E-04210882201D>