Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Oct 2018 18:53:46 -0400
From:      Mark Johnston <markj@freebsd.org>
To:        Andreas Longwitz <longwitz@incore.de>
Cc:        "freebsd-dtrace@freebsd.org" <freebsd-dtrace@freebsd.org>
Subject:   Re: Why my DTrace script does not work after installing a new kernel without reboot
Message-ID:  <20181027225339.GA4191@spy>
In-Reply-To: <5BD4E965.9040006@incore.de>
References:  <5BD4E965.9040006@incore.de>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20181027225339.GA4191>