From: Daniel Bristot de Oliveira <bristot@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Wim Van Sebroeck <wim@linux-watchdog.org>,
Guenter Roeck <linux@roeck-us.net>,
Jonathan Corbet <corbet@lwn.net>, Ingo Molnar <mingo@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
Peter Zijlstra <peterz@infradead.org>,
Will Deacon <will@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Marco Elver <elver@google.com>,
Dmitry Vyukov <dvyukov@google.com>,
"Paul E. McKenney" <paulmck@kernel.org>,
Shuah Khan <skhan@linuxfoundation.org>,
Gabriele Paoloni <gpaoloni@redhat.com>,
Juri Lelli <juri.lelli@redhat.com>,
Clark Williams <williams@redhat.com>,
Tao Zhou <tao.zhou@linux.dev>,
Randy Dunlap <rdunlap@infradead.org>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-trace-devel@vger.kernel.org
Subject: Re: [PATCH V6 04/16] rv/include: Add deterministic automata monitor definition via C macros
Date: Thu, 21 Jul 2022 18:38:42 +0200 [thread overview]
Message-ID: <26c5c095-2aff-3c7b-80ad-7b21702a3fdd@kernel.org> (raw)
In-Reply-To: <20220721095924.151c6f5d@gandalf.local.home>
On 7/21/22 15:59, Steven Rostedt wrote:
> On Thu, 21 Jul 2022 14:08:38 +0200
> Daniel Bristot de Oliveira <bristot@kernel.org> wrote:
>
>> On 7/20/22 22:06, Steven Rostedt wrote:
>>>> +/* \
>>>> + * da_monitor_enabled_##name - checks if the monitor is enabled \
>>>> + */ \
>>>> +static inline bool da_monitor_enabled_##name(void) \
>>>> +{ \
>>> Should we add a:
>>>
>>> smp_rmb();
>>>
>>> here? And then a smp_wmb() where these switches get updated?
>>>
>>
>> Makes sense.
>>
>> Should I also add the READ_ONCE/WRITE_ONCE? like
>>
>> smp_rmb()
>> READ_ONCE(var)
>>
>> WRITE_ONCE(var, value)
>> smp_wmb()
>
> I'm not sure the WRITE_ONCE() is necessary with the memory barriers.
> Because they should also prevent gcc from doing anything after that
> barrier. As Linus once stated, most cases WRITE_ONCE() is useless, but it's
> fine to keep more for annotation (as to pair with the READ_ONCE()) than for
> anything that is critical.
Ack, I can keep for annotation.
>>
>> for all these on/off knobs, or just the barriers?
>>
>>> I guess how critical is it that these turn off immediately after the switch
>>> is flipped?
>>
>> It is not critical to continue the execution of those that have already crossed by
>> the variable. Still, waiting for the tracepoints to finish their execution before
>> returning to the user-space task that disabled the variable might be a good thing.
>
> You mean after disabling, to wait for the tracepoints that are currently
> running to end?
yes, after disabling tracepoints.
>>
>> IIRC, we can do that via RCU... like, synchronize_rcu()?
>
> We have tracepoint_synchronize_unregister() that does that, as some
> traceponits use SRCU and not RCU.
yep, that is it!
-- Daniel
> -- Steve
>
>
>>
>>>> + /* global switch */ \
>>>> + if (unlikely(!rv_monitoring_on())) \
>>>> + return 0; \
>>>> + \
>>>> + /* monitor enabled */ \
>>>> + if (unlikely(!rv_##name.enabled)) \
>>>> + return 0; \
>>>> + \
>>>> + return 1; \
>>>> +} \
>>>> + \
>
next prev parent reply other threads:[~2022-07-21 16:38 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-19 17:27 [PATCH V6 00/16] The Runtime Verification (RV) interface Daniel Bristot de Oliveira
2022-07-19 17:27 ` [PATCH V6 01/16] rv: Add " Daniel Bristot de Oliveira
2022-07-20 14:47 ` Steven Rostedt
2022-07-20 15:20 ` Daniel Bristot de Oliveira
2022-07-20 15:21 ` Steven Rostedt
2022-07-20 15:33 ` Daniel Bristot de Oliveira
2022-07-21 14:38 ` Tao Zhou
2022-07-21 14:54 ` Steven Rostedt
2022-07-19 17:27 ` [PATCH V6 02/16] rv: Add runtime reactors interface Daniel Bristot de Oliveira
2022-07-20 16:41 ` Steven Rostedt
2022-07-20 16:50 ` Daniel Bristot de Oliveira
2022-07-20 17:02 ` Steven Rostedt
2022-07-20 17:37 ` Daniel Bristot de Oliveira
2022-07-20 17:45 ` Steven Rostedt
2022-07-21 14:46 ` Tao Zhou
2022-07-19 17:27 ` [PATCH V6 03/16] rv/include: Add helper functions for deterministic automata Daniel Bristot de Oliveira
2022-07-19 17:27 ` [PATCH V6 04/16] rv/include: Add deterministic automata monitor definition via C macros Daniel Bristot de Oliveira
2022-07-20 20:06 ` Steven Rostedt
2022-07-21 12:08 ` Daniel Bristot de Oliveira
2022-07-21 13:59 ` Steven Rostedt
2022-07-21 16:38 ` Daniel Bristot de Oliveira [this message]
2022-07-19 17:27 ` [PATCH V6 05/16] rv/include: Add instrumentation helper functions Daniel Bristot de Oliveira
2022-07-19 17:27 ` [PATCH V6 06/16] Documentation/rv: Add a basic documentation Daniel Bristot de Oliveira
2022-07-19 17:27 ` [PATCH V6 07/16] tools/rv: Add dot2c Daniel Bristot de Oliveira
2022-07-19 17:27 ` [PATCH V6 08/16] Documentation/rv: Add deterministic automaton documentation Daniel Bristot de Oliveira
2022-07-19 17:27 ` [PATCH V6 09/16] tools/rv: Add dot2k Daniel Bristot de Oliveira
2022-07-19 17:27 ` [PATCH V6 10/16] Documentation/rv: Add deterministic automata monitor synthesis documentation Daniel Bristot de Oliveira
2022-07-19 17:27 ` [PATCH V6 11/16] Documentation/rv: Add deterministic automata instrumentation documentation Daniel Bristot de Oliveira
2022-07-21 14:57 ` Tao Zhou
2022-07-19 17:27 ` [PATCH V6 12/16] rv/monitor: Add the wip monitor skeleton created by dot2k Daniel Bristot de Oliveira
2022-07-19 17:27 ` [PATCH V6 13/16] rv/monitor: Add the wip monitor Daniel Bristot de Oliveira
2022-07-19 17:27 ` [PATCH V6 14/16] rv/monitor: Add the wwnr monitor Daniel Bristot de Oliveira
2022-07-24 18:12 ` kernel test robot
2022-07-19 17:27 ` [PATCH V6 15/16] rv/reactor: Add the printk reactor Daniel Bristot de Oliveira
2022-07-21 15:29 ` Steven Rostedt
2022-07-19 17:27 ` [PATCH V6 16/16] rv/reactor: Add the panic reactor Daniel Bristot de Oliveira
2022-07-21 15:31 ` Steven Rostedt
2022-07-21 16:43 ` Daniel Bristot de Oliveira
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=26c5c095-2aff-3c7b-80ad-7b21702a3fdd@kernel.org \
--to=bristot@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=dvyukov@google.com \
--cc=elver@google.com \
--cc=gpaoloni@redhat.com \
--cc=juri.lelli@redhat.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-devel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mingo@redhat.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=rdunlap@infradead.org \
--cc=rostedt@goodmis.org \
--cc=skhan@linuxfoundation.org \
--cc=tao.zhou@linux.dev \
--cc=tglx@linutronix.de \
--cc=will@kernel.org \
--cc=williams@redhat.com \
--cc=wim@linux-watchdog.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).