Skip site navigation (1)Skip section navigation (2)
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>