Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Aug 2023 02:46:02 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
To:        Mark Johnston <markj@freebsd.org>
Cc:        dtrace@freebsd.org
Subject:   Re: DTrace, kernel loader, unknown probes, enable on load?
Message-ID:  <5p24r5s1-9s7n-0644-4n27-0o82876pn107@yvfgf.mnoonqbm.arg>
In-Reply-To: <alpine.BSF.2.00.2203241549370.68830@ai.fobar.qr>
References:  <alpine.BSF.2.00.2202111403340.68830@ai.fobar.qr> <YgZxcxon9xJxEpbR@nuc> <YgaFAJ7XAmKxB3w8@nuc> <alpine.BSF.2.00.2202111550460.68830@ai.fobar.qr> <YgaJekOI3UraO9qW@nuc> <alpine.BSF.2.00.2202120014100.68830@ai.fobar.qr> <YgpgRjVQbEDNLNIZ@nuc> <alpine.BSF.2.00.2203241549370.68830@ai.fobar.qr>

next in thread | previous in thread | raw e-mail | index | archive | help

On Thu, 24 Mar 2022, Bjoern A. Zeeb wrote:

Hi,

> On Mon, 14 Feb 2022, Mark Johnston wrote:
>
> Hi,
>
> sorry I had lost track ..
>
>> On Sat, Feb 12, 2022 at 12:16:45AM +0000, Bjoern A. Zeeb wrote:
>>> On Fri, 11 Feb 2022, Mark Johnston wrote:
>>> 
>>>> It appears to be sufficient to simply move the kld_load hook to before
>>>> module registration, patch below.  In the case of a subsequent error,
>>>> the unload hook is called so DTrace gets a chance to clean up.  I can't
>>>> see any reasons not to move it, though there's at least one non-dtrace
>>>> consumer that needs a look.
>>> 
>>> HWPMC?
>> 
>> Yes.
>> 
>>> 
>>> It does work for my case with -Z which will ease work massively.
>>> I can't wait for the "morning" and more time then to look at things :-)
>>> 
>>> Please put me on subscribers should you put up a review.
>> 
>> So there's one wrinkle I haven't thought through: when FBT probes are
>> enabled in a KLD, we use the kld_unload_try eventhandler to block
>> unloading of the module.  Now, if we permit FBT probes to be enabled in
>> a KLD before its sysinits run, then the kldload might fail, and the
>> kernel linker will try to unload the module.  But then FBT will block
>> the unload.  What's the right thing to do there?
>
> I dunno.
>
> I can only say that the local change has helped quite a few times in the
> last month in my dev tree.
>
> Shall we add a PR or review and track progress there with a possibly
> wider audience?


I just got bitten by this again running some older scripts missing
output.
Thankfully remembered the adjustment.

Is there any way we can solve this proper?

/bz



>>> Thanks a lot Mark and a happy weekend!
>>> Bjoern
>>> 
>>> 
>>>> diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
>>>> index 2e4c95f16c8f..55661b9f9aa2 100644
>>>> --- a/sys/kern/kern_linker.c
>>>> +++ b/sys/kern/kern_linker.c
>>>> @@ -452,6 +452,7 @@ linker_load_file(const char *filename, linker_file_t 
>>>> *result)
>>>> 		if (error != ENOENT)
>>>> 			foundfile = 1;
>>>> 		if (lf) {
>>>> +			EVENTHANDLER_INVOKE(kld_load, lf);
>>>> 			error = linker_file_register_modules(lf);
>>>> 			if (error == EEXIST) {
>>>> 				linker_file_unload(lf, LINKER_UNLOAD_FORCE);
>>>> @@ -472,7 +473,6 @@ linker_load_file(const char *filename, linker_file_t 
>>>> *result)
>>>> 				return (ENOEXEC);
>>>> 			}
>>>> 			linker_file_enable_sysctls(lf);
>>>> -			EVENTHANDLER_INVOKE(kld_load, lf);
>>>> 			*result = lf;
>>>> 			return (0);
>>>> 		}
>>>> 
>>>> 
>>> 
>>> --
>>> Bjoern A. Zeeb                                                     r15:7
>> 
>> 
>
>

-- 
Bjoern A. Zeeb                                                     r15:7



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5p24r5s1-9s7n-0644-4n27-0o82876pn107>