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>

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



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