Why my DTrace script does not work after installing a new kernel without reboot
Mark Johnston
markj at freebsd.org
Sat Oct 27 22:53:53 UTC 2018
On Sun, Oct 28, 2018 at 12:40:37AM +0200, Andreas Longwitz wrote:
> I have a simple, probably stupid question. I run FreeBSD 10.4 Stable
> r338093 and use the script
>
> #!/usr/sbin/dtrace -s
>
> dtrace:::BEGIN
> {
> printf("pf_default_rule.timeout[2/16/17]=%d/%d/%d\n",
> kernel`pf_default_rule.timeout[2], kernel`pf_default_rule.timeout[16],
> kernel`pf_default_rule.timeout[17]);
> }
>
> The output normally is
> pf_default_rule.timeout[2/16/17]=86400/6000/12000
>
> But when I change the sourcefile /sys/netpfil/pf/pf.c trying a patch and
> build and install the new kernel but without reboot, then the output of
> the script is wrong:
>
> pf_default_rule.timeout[2/16/17]=3237216124/0/0
>
> After reboot everything works again.
Does your patch change the layout of the timeout structure? If so, the
problem is that dtrace(1) is using the CTF from kern.bootfile, but that
doesn't match the layout of the structures used by the running kernel.
More information about the freebsd-dtrace
mailing list