Xiu Jianfeng
834168fb2c
rv/monitor: Add __init/__exit annotations to module init/exit funcs
...
Add missing __init/__exit annotations to module init/exit funcs.
Link: https://lkml.kernel.org/r/20220922103208.162869-1-xiujianfeng@huawei.com
Fixes: 24bce201d7 ("tools/rv: Add dot2k")
Fixes: 8812d21219 ("rv/monitor: Add the wip monitor skeleton created by dot2k")
Fixes: ccc319dcb4 ("rv/monitor: Add the wwnr monitor")
Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com >
Acked-by: Daniel Bristot de Oliveira <bristot@kernel.org >
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org >
2022-09-26 18:10:51 -04:00
Zeng Heng
01c44bf833
rv/monitors: add 'static' qualifier for local symbols
...
The sparse tool complains as follows:
kernel/trace/rv/monitors/wwnr/wwnr.c:18:19:
warning: symbol 'rv_wwnr' was not declared. Should it be static?
The `rv_wwnr` symbol is not dereferenced by other extern files,
so add static qualifier for it.
So does wip module.
Link: https://lkml.kernel.org/r/20220824034357.2014202-2-zengheng4@huawei.com
Cc: <mingo@redhat.com >
Fixes: ccc319dcb4 ("rv/monitor: Add the wwnr monitor")
Fixes: 8812d21219 ("rv/monitor: Add the wip monitor skeleton created by dot2k")
Signed-off-by: Zeng Heng <zengheng4@huawei.com >
Acked-by: Daniel Bristot de Oliveira <bristot@kernel.org >
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org >
2022-09-26 13:01:09 -04:00
Daniel Bristot de Oliveira
baf2c00240
rv/monitors: Make monitor's automata definition static
...
Monitor's automata definition is only used locally, so make
them static for all existing monitors.
Link: https://lore.kernel.org/all/202208210332.gtHXje45-lkp@intel.com
Link: https://lore.kernel.org/all/202208210358.6HH3OrVs-lkp@intel.com
Link: https://lkml.kernel.org/r/a50e27c3738d6ef809f4201857229fed64799234.1661266564.git.bristot@kernel.org
Fixes: ccc319dcb4 ("rv/monitor: Add the wwnr monitor")
Fixes: 8812d21219 ("rv/monitor: Add the wip monitor skeleton created by dot2k")
Reported-by: kernel test robot <lkp@intel.com >
Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org >
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org >
2022-09-06 22:13:25 -04:00
Daniel Bristot de Oliveira
ccc319dcb4
rv/monitor: Add the wwnr monitor
...
Per task wakeup while not running (wwnr) monitor.
This model is broken, the reason is that a task can be running in the
processor without being set as RUNNABLE. Think about a task about to
sleep:
1: set_current_state(TASK_UNINTERRUPTIBLE);
2: schedule();
And then imagine an IRQ happening in between the lines one and two,
waking the task up. BOOM, the wakeup will happen while the task is
running.
Q: Why do we need this model, so?
A: To test the reactors.
Link: https://lkml.kernel.org/r/473c0fc39967250fdebcff8b620311c11dccad30.1659052063.git.bristot@kernel.org
Cc: Wim Van Sebroeck <wim@linux-watchdog.org >
Cc: Guenter Roeck <linux@roeck-us.net >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Will Deacon <will@kernel.org >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Marco Elver <elver@google.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: "Paul E. McKenney" <paulmck@kernel.org >
Cc: Shuah Khan <skhan@linuxfoundation.org >
Cc: Gabriele Paoloni <gpaoloni@redhat.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Clark Williams <williams@redhat.com >
Cc: Tao Zhou <tao.zhou@linux.dev >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-trace-devel@vger.kernel.org
Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org >
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org >
2022-07-30 14:01:30 -04:00
Daniel Bristot de Oliveira
10bde81c74
rv/monitor: Add the wip monitor
...
The wakeup in preemptive (wip) monitor verifies if the
wakeup events always take place with preemption disabled:
|
|
v
#==================#
H preemptive H <+
#==================# |
| |
| preempt_disable | preempt_enable
v |
sched_waking +------------------+ |
+--------------- | | |
| | non_preemptive | |
+--------------> | | -+
+------------------+
The wakeup event always takes place with preemption disabled because
of the scheduler synchronization. However, because the preempt_count
and its trace event are not atomic with regard to interrupts, some
inconsistencies might happen.
The documentation illustrates one of these cases.
Link: https://lkml.kernel.org/r/c98ca678df81115fddc04921b3c79720c836b18f.1659052063.git.bristot@kernel.org
Cc: Wim Van Sebroeck <wim@linux-watchdog.org >
Cc: Guenter Roeck <linux@roeck-us.net >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Will Deacon <will@kernel.org >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Marco Elver <elver@google.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: "Paul E. McKenney" <paulmck@kernel.org >
Cc: Shuah Khan <skhan@linuxfoundation.org >
Cc: Gabriele Paoloni <gpaoloni@redhat.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Clark Williams <williams@redhat.com >
Cc: Tao Zhou <tao.zhou@linux.dev >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-trace-devel@vger.kernel.org
Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org >
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org >
2022-07-30 14:01:30 -04:00
Daniel Bristot de Oliveira
8812d21219
rv/monitor: Add the wip monitor skeleton created by dot2k
...
THIS CODE IS NOT LINKED TO THE MAKEFILE.
This model does not compile because it lacks the instrumentation
part, which will be added next. In the typical case, there will be
only one patch, but it was split into two patches for educational
purposes.
This is the direct output this command line:
$ dot2k -d tools/verification/models/wip.dot -t per_cpu
Link: https://lkml.kernel.org/r/5eb7a9118917e8a814c5e49853a72fc62be0a101.1659052063.git.bristot@kernel.org
Cc: Wim Van Sebroeck <wim@linux-watchdog.org >
Cc: Guenter Roeck <linux@roeck-us.net >
Cc: Jonathan Corbet <corbet@lwn.net >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Will Deacon <will@kernel.org >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Marco Elver <elver@google.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: "Paul E. McKenney" <paulmck@kernel.org >
Cc: Shuah Khan <skhan@linuxfoundation.org >
Cc: Gabriele Paoloni <gpaoloni@redhat.com >
Cc: Juri Lelli <juri.lelli@redhat.com >
Cc: Clark Williams <williams@redhat.com >
Cc: Tao Zhou <tao.zhou@linux.dev >
Cc: Randy Dunlap <rdunlap@infradead.org >
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-trace-devel@vger.kernel.org
Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org >
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org >
2022-07-30 14:01:29 -04:00