From: Gabriele Monaco <gmonaco@redhat.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Nam Cao <namcao@linutronix.de>,
john.ogness@linutronix.de, Petr Mladek <pmladek@suse.com>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Ingo Molnar <mingo@redhat.com>,
Thomas Gleixner <tglx@linutronix.de>,
Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H . Peter Anvin" <hpa@zytor.com>,
Andy Lutomirski <luto@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Catalin Marinas <catalin.marinas@arm.com>,
linux-arm-kernel@lists.infradead.org,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
linux-riscv@lists.infradead.org,
linux-trace-kernel@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 00/22] RV: Linear temporal logic monitors for RT application
Date: Wed, 30 Apr 2025 14:17:30 +0200 [thread overview]
Message-ID: <cbcefdb80d5e10b8fed80de17bb97bf61df81386.camel@redhat.com> (raw)
In-Reply-To: <cover.1745999587.git.namcao@linutronix.de>
On Wed, 2025-04-30 at 13:02 +0200, Nam Cao wrote:
> Real-time applications may have design flaws causing them to have
> unexpected latency. For example, the applications may raise page
> faults, or
> may be blocked trying to take a mutex without priority inheritance.
>
> However, while attempting to implement DA monitors for these real-
> time
> rules, deterministic automaton is found to be inappropriate as the
> specification language. The automaton is complicated, hard to
> understand,
> and error-prone.
>
> For these cases, linear temporal logic is found to be more suitable.
> The
> LTL is more concise and intuitive.
>
> This series adds support for LTL RV monitor, and use it to implement
> two
> monitors for reporting problems with real-time tasks.
>
Steve,
From my point of view this series is ready for inclusion, what do you
think?
We may still need Acks from the x86 and arm64 maintainers regarding the
tracepoints changes, though.
Thanks,
Gabriele
> Patch 1-12 cleanup and prepare the RV code for the integration of LTL
> monitors.
>
> Patch 13 adds support for LTL monitors.
>
> Patch 14 adds the container monitor "rtapp". This encapsulates the
> sub-monitors for real-time.
>
> Patch 15-18 prepares the pagefault tracepoints, so that patch 19 can
> add
> the monitor which watches real-time tasks doing page faults.
>
> Patch 20 adds the "sleep" monitor: it detects potential undesirable
> latency
> with real-time threads.
>
> Patch 21 adds documentation on the new monitors.
>
> Patch 22 allows the number of per-task monitors to be configurable,
> so that
> the two new monitors can be enabled simultaneously.
>
> v5->v6
> https://lore.kernel.org/lkml/cover.1745926331.git.namcao@linutronix.de
> - sleep monitor: Drop the block_on_rt_mutex tracepoints. The
> contention
> tracepoints are sufficient.
>
> v4->v5
> https://lore.kernel.org/lkml/cover.1745390829.git.namcao@linutronix.de
> - sleep monitor: Fix a false positive due to a race with waking and
> scheduling.
> - sleep monitor: Add block_on_rt_mutex tracepoints and use them for
> BLOCK_ON_RT_MUTEX, instead of trace_sched_pi_setprio
> - sleep monitor: tighten the rule on nanosleep: only
> clock_nanosleep()
> with TIMER_ABSTIME and CLOCK_MONOTONIC is allowed
> - add comments explaining why it is correct to treat PI-boosted
> tasks as
> real-time tasks.
>
> It should be noted that due to the changes in v5, 'perf' does not
> work
> as well as before, because sometimes the errors happen out of the
> real-time tasks' contexts. Fixing this is left for future work.
>
> stress-ng is also far noisier in v5, because the rule on
> nanosleep is
> tightened.
>
> v3->v4
> https://lore.kernel.org/lkml/cover.1744785335.git.namcao@linutronix.de
> - support deadline tasks
> - rtapp_sleep: use sched_pi_setprio tracepoint instead of
> contention
> tracepoints for BLOCK_ON_RT_MUTEX, so that proxy lock is covered.
> - fix the scripts generating an "slightly" incorrect verification
> automaton
> - makes rtapp monitor depends on RV_PER_TASK_MONITORS >= 2
> - make the event tracepoint output a bit more readable
> - some documentation's format fixes
>
> v2->v3
> https://lore.kernel.org/lkml/cover.1744355018.git.namcao@linutronix.de/
> - fix a problem with sleep monitor's specification (around
> KTHREAD_SHOULD_STOP)
> - merge the patches that move the dot2k/rvgen scripts around
> - pull panic/printk changes into separate patches
> - fixup some build errors
> - fixup monitor's init function return code
> - fix some flake8 warnings with the scripts
> - add some references to LTL documentation
> - fixup some mistakes with rtapp documentation
> - fixup capitalization mistake with monitor_synthesis.rst
> - remove the now-redundant macro RV_PER_TASK_MONITORS
>
> v1->v2
> https://lore.kernel.org/lkml/cover.1741708239.git.namcao@linutronix.de/
> - Integrate the LTL scripts into the existing dot2k tool, taking
> advantage of the existing monitor generation scripts.
> - Switch the struct ltl_monitor to use bitmap instead of an array,
> to
> optimize memory usage.
> - Correct the generated code to be non-deterministic state machine,
> instead of deterministic state machine
> - Put common code for all LTL monitors into a single file
> (include/rv/ltl_monitor.h), reducing code duplication
> - Change the LTL monitors to make user of container. Add a bug fix
> to
> container while at it.
> - Make the number of per-task monitor configurable
next prev parent reply other threads:[~2025-04-30 12:17 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-30 11:02 [PATCH v6 00/22] RV: Linear temporal logic monitors for RT application Nam Cao
2025-04-30 11:02 ` [PATCH v6 01/22] rv: Add #undef TRACE_INCLUDE_FILE Nam Cao
2025-04-30 11:02 ` [PATCH v6 02/22] printk: Make vprintk_deferred() public Nam Cao
2025-04-30 11:02 ` [PATCH v6 03/22] panic: Add vpanic() Nam Cao
2025-05-05 12:24 ` Petr Mladek
2025-04-30 11:02 ` [PATCH v6 04/22] rv: Let the reactors take care of buffers Nam Cao
2025-05-05 12:25 ` Petr Mladek
2025-04-30 11:02 ` [PATCH v6 05/22] verification/dot2k: Make a separate dot2k_templates/Kconfig_container Nam Cao
2025-04-30 11:02 ` [PATCH v6 06/22] verification/dot2k: Remove __buff_to_string() Nam Cao
2025-04-30 11:02 ` [PATCH v6 07/22] verification/dot2k: Replace is_container() hack with subparsers Nam Cao
2025-04-30 11:02 ` [PATCH v6 08/22] rv: rename CONFIG_DA_MON_EVENTS to CONFIG_RV_MON_EVENTS Nam Cao
2025-04-30 11:02 ` [PATCH v6 09/22] verification/dot2k: Prepare the frontend for LTL inclusion Nam Cao
2025-04-30 11:02 ` [PATCH v6 10/22] Documentation/rv: Prepare monitor synthesis document " Nam Cao
2025-04-30 11:02 ` [PATCH v6 11/22] verification/rvgen: Restructure the templates files Nam Cao
2025-04-30 11:02 ` [PATCH v6 12/22] verification/rvgen: Restructure the classes to prepare for LTL inclusion Nam Cao
2025-04-30 11:02 ` [PATCH v6 13/22] rv: Add support for LTL monitors Nam Cao
2025-05-07 21:00 ` Steven Rostedt
2025-04-30 11:02 ` [PATCH v6 14/22] rv: Add rtapp container monitor Nam Cao
2025-04-30 11:02 ` [PATCH v6 15/22] x86/tracing: Remove redundant trace_pagefault_key Nam Cao
2025-04-30 11:02 ` [PATCH v6 16/22] x86/tracing: Move page fault trace points to generic Nam Cao
2025-05-07 21:03 ` Steven Rostedt
2025-04-30 11:02 ` [PATCH v6 17/22] arm64: mm: Add page fault trace points Nam Cao
2025-05-07 21:23 ` Steven Rostedt
2025-05-16 14:04 ` Will Deacon
2025-05-16 14:42 ` Steven Rostedt
2025-05-19 15:12 ` Will Deacon
2025-05-19 16:08 ` Steven Rostedt
2025-05-20 14:04 ` Will Deacon
2025-05-16 15:09 ` Nam Cao
2025-05-19 16:17 ` Mark Rutland
2025-05-20 12:32 ` Will Deacon
2025-04-30 11:02 ` [PATCH v6 18/22] riscv: " Nam Cao
2025-04-30 11:02 ` [PATCH v6 19/22] rv: Add rtapp_pagefault monitor Nam Cao
2025-04-30 11:02 ` [PATCH v6 20/22] rv: Add rtapp_sleep monitor Nam Cao
2025-04-30 11:02 ` [PATCH v6 21/22] rv: Add documentation for rtapp monitor Nam Cao
2025-04-30 11:02 ` [PATCH v6 22/22] rv: Allow to configure the number of per-task monitor Nam Cao
2025-04-30 12:17 ` Gabriele Monaco [this message]
2025-04-30 19:18 ` [PATCH v6 00/22] RV: Linear temporal logic monitors for RT application Steven Rostedt
2025-08-10 21:12 ` patchwork-bot+linux-riscv
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=cbcefdb80d5e10b8fed80de17bb97bf61df81386.camel@redhat.com \
--to=gmonaco@redhat.com \
--cc=alex@ghiti.fr \
--cc=aou@eecs.berkeley.edu \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=john.ogness@linutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=namcao@linutronix.de \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.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).