Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Feb 2020 21:01:01 +0100
From:      =?UTF-8?Q?Stefan_E=c3=9fer?= <se@freebsd.org>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        Mateusz Guzik <mjguzik@gmail.com>, freebsd-current@freebsd.org
Subject:   Re: option KDTRACE_HOOKS non-optional after r357912?
Message-ID:  <185a5721-e891-2c4d-7fc3-b3fbb75f49d7@freebsd.org>
In-Reply-To: <20200215174543.GU4808@kib.kiev.ua>
References:  <ee9f3c6b-a0f9-5586-1713-78d132c1c6d4.ref@yahoo.de> <ee9f3c6b-a0f9-5586-1713-78d132c1c6d4@yahoo.de> <CAGudoHG7F65Pr%2BV=w3BqrT4BKGvujPYB78Vek%2BMRf9je-FWW6g@mail.gmail.com> <57662d12-5c9f-c947-70ca-d1032b82fb3b@freebsd.org> <bf3ca636-e210-d623-251d-ec1e460de7bb@freebsd.org> <20200215174543.GU4808@kib.kiev.ua>

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

Am 15.02.20 um 18:45 schrieb Konstantin Belousov:
> On Sat, Feb 15, 2020 at 03:58:06PM +0100, Stefan Eßer wrote:
>> Am 15.02.20 um 15:40 schrieb Stefan Eßer:
>>> Am 15.02.20 um 14:47 schrieb Mateusz Guzik:
>>>> On 2/15/20, Stefan Eßer <st.esser@yahoo.de> wrote:
>>>>> Hi Mateusz,
>>>>>
>>>>> your optimization of systrace checks has made KDTRACE_HOOKS mandatory,
>>>>> since there are unprotected assignments to systrace_enabled (which is
>>>>> defined as constant 0 in kernels without KDTRACE_HOOKS due to your
>>>>> change):
>>>>>
>>>>> /sys/cddl/dev/systrace/systrace.c:322:20: error: expression is not
>>>>> assignable
>>>>>                 systrace_enabled = true;
>>>>>                 ~~~~~~~~~~~~~~~~ ^
>>>>> /sys/cddl/dev/systrace/systrace.c:334:20: error: expression is not
>>>>> assignable
>>>>>                 systrace_enabled = false;
>>>>>                 ~~~~~~~~~~~~~~~~ ^
>>>>> 2 errors generated.
>>>>> *** [systrace.o] Error code 1
>>>>>
>>>>> The easy work-around is of course to add KDTRACE_HOOKS to the stripped
>>>>> down kernel configuration. But I think there should be stab functions
>>>>> in systrace.c to cover the case that this option is not active.
>>>>>
>>>>> Or is the overhead and other impact of KDTRACE_HOOKS considered to be
>>>>> so insignificant that it should be included in every kernel?
>>>>
>>>> Well tinderbox built for me.
>>>
>>> Yes, no surprise, KDTRACE_HOOKS is defined in all the GENERIC kernels.
>>>
>>>> Note that the module strongly depends on KDTRACE_HOOKS to work in the
>>>> first place -- even prior to my patch support in the syscall path was gated by
>>>> this define. In other words, the module should not be being built if the option
>>>> is not enabled. Thus if anything the change adds an unintended improvement
>>>> of catching the lack of dependency checking here. I may take a closer look
>>>> later but preferably someone familiar with the build system would take
>>>> care of it.
>>>
>>> If KDTRACE_HOOKS is meant to be kept optional, the hooks should not be
>>> compiled in and the functions to enable that feature should return
>>> failure, IMHO.
>>
>> A clarification: The above was of course meant for the case that the
>> option has not been specified. It has been activated, I do not expect
>> the enable function to return failure ...
>>
> Try https://reviews.freebsd.org/D23699

That version fixed the issues for me - kernel and world could be built
and installed using the previously broken configuration.

Thank you for the quick fix.

Regards, STefan


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?185a5721-e891-2c4d-7fc3-b3fbb75f49d7>