rv: Fix out-of-bound memory access in rv_is_container_monitor()When rv_is_container_monitor() is called on the last monitor inrv_monitors_list, KASAN yells: BUG: KASAN: global-out-of-bounds in
rv: Fix out-of-bound memory access in rv_is_container_monitor()When rv_is_container_monitor() is called on the last monitor inrv_monitors_list, KASAN yells: BUG: KASAN: global-out-of-bounds in rv_is_container_monitor+0x101/0x110 Read of size 8 at addr ffffffff97c7c798 by task setup/221 The buggy address belongs to the variable: rv_monitors_list+0x18/0x40This is due to list_next_entry() is called on the last entry in the list.It wraps around to the first list_head, and the first list_head is notembedded in struct rv_monitor_def.Fix it by checking if the monitor is last in the list.Cc: stable@vger.kernel.orgCc: Gabriele Monaco <gmonaco@redhat.com>Fixes: cb85c660fcd4 ("rv: Add option for nested monitors and include sched")Link: https://lore.kernel.org/e85b5eeb7228bfc23b8d7d4ab5411472c54ae91b.1744355018.git.namcao@linutronix.deSigned-off-by: Nam Cao <namcao@linutronix.de>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
show more ...
rv: Fix missing unlock on double nested monitors return pathRV doesn't support nested monitors having children monitors themselvesand exits with the EINVAL code. However, it returns without unlock
rv: Fix missing unlock on double nested monitors return pathRV doesn't support nested monitors having children monitors themselvesand exits with the EINVAL code. However, it returns without unlockingthe rv_interface_lock.Unlock the lock before returning from the initialisation function.Cc: Masami Hiramatsu <mhiramat@kernel.org>Link: https://lore.kernel.org/20250402071351.19864-2-gmonaco@redhat.comFixes: cb85c660fcd4 ("rv: Add option for nested monitors and include sched")Reported-by: kernel test robot <lkp@intel.com>Reported-by: Julia Lawall <julia.lawall@inria.fr>Closes: https://lore.kernel.org/r/202503310200.UBXGitB4-lkp@intel.comSigned-off-by: Gabriele Monaco <gmonaco@redhat.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv: Add scpd, snep and sncid per-cpu monitorsAdd 3 per-cpu monitors as part of the sched model:* scpd: schedule called with preemption disabled Monitor to ensure schedule is called with preem
rv: Add scpd, snep and sncid per-cpu monitorsAdd 3 per-cpu monitors as part of the sched model:* scpd: schedule called with preemption disabled Monitor to ensure schedule is called with preemption disabled* snep: schedule does not enable preempt Monitor to ensure schedule does not enable preempt* sncid: schedule not called with interrupt disabled Monitor to ensure schedule is not called with interrupt disabledTo: Ingo Molnar <mingo@redhat.com>To: Peter Zijlstra <peterz@infradead.org>Cc: Juri Lelli <juri.lelli@redhat.com>Cc: Ingo Molnar <mingo@redhat.com>Cc: Peter Zijlstra <peterz@infradead.org>Cc: John Kacur <jkacur@redhat.com>Cc: Clark Williams <williams@redhat.com>Link: https://lore.kernel.org/20250305140406.350227-6-gmonaco@redhat.comSigned-off-by: Gabriele Monaco <gmonaco@redhat.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv: Add snroc per-task monitorAdd a per-task monitor as part of the sched model:* snroc: set non runnable on its own context Monitor to ensure set_state happens only in the respective task's
rv: Add snroc per-task monitorAdd a per-task monitor as part of the sched model:* snroc: set non runnable on its own context Monitor to ensure set_state happens only in the respective task's contextTo: Ingo Molnar <mingo@redhat.com>To: Peter Zijlstra <peterz@infradead.org>Cc: Juri Lelli <juri.lelli@redhat.com>Cc: Ingo Molnar <mingo@redhat.com>Cc: Peter Zijlstra <peterz@infradead.org>Cc: John Kacur <jkacur@redhat.com>Cc: Clark Williams <williams@redhat.com>Link: https://lore.kernel.org/20250305140406.350227-5-gmonaco@redhat.comSigned-off-by: Gabriele Monaco <gmonaco@redhat.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv: Add sco and tss per-cpu monitorsAdd 2 per-cpu monitors as part of the sched model:* sco: scheduling context operations Monitor to ensure sched_set_state happens only in thread context* t
rv: Add sco and tss per-cpu monitorsAdd 2 per-cpu monitors as part of the sched model:* sco: scheduling context operations Monitor to ensure sched_set_state happens only in thread context* tss: task switch while scheduling Monitor to ensure sched_switch happens only in scheduling contextTo: Ingo Molnar <mingo@redhat.com>To: Peter Zijlstra <peterz@infradead.org>Cc: Juri Lelli <juri.lelli@redhat.com>Cc: Ingo Molnar <mingo@redhat.com>Cc: Peter Zijlstra <peterz@infradead.org>Cc: John Kacur <jkacur@redhat.com>Cc: Clark Williams <williams@redhat.com>Link: https://lore.kernel.org/20250305140406.350227-4-gmonaco@redhat.comSigned-off-by: Gabriele Monaco <gmonaco@redhat.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv: Add option for nested monitors and include schedMonitors describing complex systems, such as the scheduler, can easilygrow to the point where they are just hard to understand because of thema
rv: Add option for nested monitors and include schedMonitors describing complex systems, such as the scheduler, can easilygrow to the point where they are just hard to understand because of themany possible state transitions.Often it is possible to break such descriptions into smaller monitors,sharing some or all events. Enabling those smaller monitors concurrentlyis, in fact, testing the system as if we had one single larger monitor.Splitting models into multiple specification is not only easier tounderstand, but gives some more clues when we see errors.Add the possibility to create container monitors, whose only purpose isto host other nested monitors. Enabling a container monitor enables allnested ones, but it's still possible to enable nested monitorsindependently.Add the sched monitor as first container, for now empty.Cc: Ingo Molnar <mingo@redhat.com>Cc: Peter Zijlstra <peterz@infradead.org>Cc: Juri Lelli <juri.lelli@redhat.com>Link: https://lore.kernel.org/20250305140406.350227-3-gmonaco@redhat.comSigned-off-by: Gabriele Monaco <gmonaco@redhat.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv: Add license identifiers to monitor filesSome monitor files like the main header and the Kconfig are missing thelicense identifier.Add it to those and make sure the automatic generation scrip
rv: Add license identifiers to monitor filesSome monitor files like the main header and the Kconfig are missing thelicense identifier.Add it to those and make sure the automatic generation script includesthe line in newly created monitors.Cc: Masami Hiramatsu <mhiramat@kernel.org>Cc: Ingo Molnar <mingo@redhat.com>Cc: Peter Zijlstra <peterz@infradead.org>Cc: Juri Lelli <juri.lelli@redhat.com>Link: https://lore.kernel.org/20250218123121.253551-3-gmonaco@redhat.comSigned-off-by: Gabriele Monaco <gmonaco@redhat.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
verification/dot2k: Auto patch current kernel sourcedot2k suggests a list of changes to the kernel tree while adding amonitor: edit tracepoints header, Makefile, Kconfig and moving themonitor fol
verification/dot2k: Auto patch current kernel sourcedot2k suggests a list of changes to the kernel tree while adding amonitor: edit tracepoints header, Makefile, Kconfig and moving themonitor folder. Those changes can be easily run automatically.Add a flag to dot2k to alter the kernel source.The kernel source directory can be either assumed from the PWD, or fromthe running kernel, if installed.This feature works best if the kernel tree is a git repository, so thatits easier to make sure there are no unintended changes.The main RV files (e.g. Makefile) have now a comment placeholder thatcan be useful for manual editing (e.g. to know where to add newmonitors) and it is used by the script to append the required lines.We also slightly adapt the file handling functions in dot2k: __open_fileis now called __read_file and also closes the file before returning thecontent; __create_file is now a more general __write_file, we no longerreturn on FileExistsError (not thrown while opening), a new__create_file simply calls __write_file specifying the monitor folder inthe path.Cc: Juri Lelli <juri.lelli@redhat.com>Cc: Thomas Gleixner <tglx@linutronix.de>Cc: John Kacur <jkacur@redhat.com>Link: https://lore.kernel.org/20241227144752.362911-8-gmonaco@redhat.comSigned-off-by: Gabriele Monaco <gmonaco@redhat.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv: Simplify manual steps in monitor creationWhile creating a new monitor in RV, besides generating code from dot2k,there are a few manual steps which can be tedious and error prone, likeadding t
rv: Simplify manual steps in monitor creationWhile creating a new monitor in RV, besides generating code from dot2k,there are a few manual steps which can be tedious and error prone, likeadding the tracepoints, makefile lines and kconfig.This patch restructures the existing monitors to keep some files in themonitor's folder itself, which can be automatically generated by futureversions of dot2k.Monitors have now their own Kconfig and tracepoint snippets. Forsimplicity, the main tracepoint definition, is moved to the RVdirectory, it defines only the tracepoint classes and includes themonitor-specific tracepoints, which reside in the monitor directory.Tracepoints and Kconfig no longer need to be copied and adapted fromexisting ones but only need to be included in the main files.The Makefile remains untouched since there's little advantage in havinga separated Makefile for each monitor with a single line and includingit in the main RV Makefile.Cc: Juri Lelli <juri.lelli@redhat.com>Cc: Thomas Gleixner <tglx@linutronix.de>Cc: John Kacur <jkacur@redhat.com>Link: https://lore.kernel.org/20241227144752.362911-6-gmonaco@redhat.comSigned-off-by: Gabriele Monaco <gmonaco@redhat.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv: Fix a typoFix a typo in comments.Cc: Masami Hiramatsu <mhiramat@kernel.org>Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>Link: https://lore.kernel.org/20240911114349.20449-1-algonel
rv: Fix a typoFix a typo in comments.Cc: Masami Hiramatsu <mhiramat@kernel.org>Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>Link: https://lore.kernel.org/20240911114349.20449-1-algonell@gmail.comReported-by: Matthew Wilcox <willy@infradead.org>Signed-off-by: Andrew Kreimer <algonell@gmail.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
[tree-wide] finally take no_llseek outno_llseek had been defined to NULL two years ago, in commit 868941b14441("fs: remove no_llseek")To quote that commit, At -rc1 we'll need do a mechanical
[tree-wide] finally take no_llseek outno_llseek had been defined to NULL two years ago, in commit 868941b14441("fs: remove no_llseek")To quote that commit, At -rc1 we'll need do a mechanical removal of no_llseek - git grep -l -w no_llseek | grep -v porting.rst | while read i; do sed -i '/\<no_llseek\>/d' $i done would do it.Unfortunately, that hadn't been done. Linus, could you do that now, sothat we could finally put that thing to rest? All instances are of theform .llseek = no_llseek,so it's obviously safe.Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
rv: Update rv_en(dis)able_monitor doc to match kernel-docThe patch updates the function documentation comment forrv_en(dis)able_monitor to adhere to the kernel-doc specification.Link: https://lo
rv: Update rv_en(dis)able_monitor doc to match kernel-docThe patch updates the function documentation comment forrv_en(dis)able_monitor to adhere to the kernel-doc specification.Link: https://lore.kernel.org/linux-trace-kernel/20240520054239.61784-1-yang.lee@linux.alibaba.comFixes: 102227b970a15 ("rv: Add Runtime Verification (RV) interface")Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Merge tag 'trace-tools-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-tracePull tracing tools updates from Steven Rostedt: - Add auto-analysis only option to rtla/timerlat
Merge tag 'trace-tools-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-tracePull tracing tools updates from Steven Rostedt: - Add auto-analysis only option to rtla/timerlat Add an --aa-only option to the tooling to perform only the auto analysis and not to parse and format the data. - Other minor fixes and clean ups* tag 'trace-tools-v6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: rtla/timerlat: Fix "Previous IRQ" auto analysis' line rtla/timerlat: Add auto-analysis only option rv: Remove redundant assignment to variable retval rv: Fix addition on an uninitialized variable 'run' rtla: Add .gitignore file
rv: Remove redundant assignment to variable retvalVariable retval is being assigned a value that is never read, it isbeing re-assigned a new value in both paths of a following if statement.Remove
rv: Remove redundant assignment to variable retvalVariable retval is being assigned a value that is never read, it isbeing re-assigned a new value in both paths of a following if statement.Remove the assignment.Cleans up clang-scan warning:kernel/trace/rv/rv.c:293:2: warning: Value stored to 'retval' is never read [deadcode.DeadStores] retval = count;Link: https://lkml.kernel.org/r/20230418150018.3123753-1-colin.i.king@gmail.comCc: Masami Hiramatsu <mhiramat@kernel.org>Signed-off-by: Colin Ian King <colin.i.king@gmail.com>Acked-by: Daniel Bristot de Oliveira <bristot@kernel.org>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv/reactor: remove MODULE_LICENSE in non-modulesSince commit 8b41fc4454e ("kbuild: create modules.builtin withoutMakefile.modbuiltin or tristate.conf"), MODULE_LICENSE declarationsare used to ide
rv/reactor: remove MODULE_LICENSE in non-modulesSince commit 8b41fc4454e ("kbuild: create modules.builtin withoutMakefile.modbuiltin or tristate.conf"), MODULE_LICENSE declarationsare used to identify modules. As a consequence, uses of the macroin non-modules will cause modprobe to misidentify their containingobject file as a module when it is not (false positives), and modprobemight succeed rather than failing with a suitable error message.So remove it in the files in this commit, none of which can be built asmodules.Signed-off-by: Nick Alcock <nick.alcock@oracle.com>Suggested-by: Luis Chamberlain <mcgrof@kernel.org>Acked-by: Daniel Bristot de Oliveira <bristot@kernel.org>Cc: Luis Chamberlain <mcgrof@kernel.org>Cc: linux-modules@vger.kernel.orgCc: linux-kernel@vger.kernel.orgCc: Hitomi Hasegawa <hasegawa-hitomi@fujitsu.com>Cc: Daniel Bristot de Oliveira <bristot@kernel.org>Cc: Steven Rostedt <rostedt@goodmis.org>Cc: Masami Hiramatsu <mhiramat@kernel.org>Cc: linux-trace-devel@vger.kernel.orgCc: linux-trace-kernel@vger.kernel.orgSigned-off-by: Luis Chamberlain <mcgrof@kernel.org>
rv: remove redundant initialization of pointer ptrThe pointer ptr is being initialized with a value that is never read,it is being updated later on a call to strim. Remove the extraneousinitializ
rv: remove redundant initialization of pointer ptrThe pointer ptr is being initialized with a value that is never read,it is being updated later on a call to strim. Remove the extraneousinitialization.Link: https://lkml.kernel.org/r/20230116161612.77192-1-colin.i.king@gmail.comCc: Daniel Bristot de Oliveira <bristot@kernel.org>Cc: Masami Hiramatsu <mhiramat@kernel.org>Signed-off-by: Colin Ian King <colin.i.king@gmail.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv/monitors: Move monitor structure in rodataIt makes sense to move the important monitor structure into rodata toprevent accidental structure modification.Link: https://lkml.kernel.org/r/202211
rv/monitors: Move monitor structure in rodataIt makes sense to move the important monitor structure into rodata toprevent accidental structure modification.Link: https://lkml.kernel.org/r/20221122173648.4732-1-acarmina@redhat.comSigned-off-by: Alessandro Carminati <acarmina@redhat.com>Acked-by: Daniel Bristot de Oliveira <bristot@kernel.org>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv/monitor: Add __init/__exit annotations to module init/exit funcsAdd missing __init/__exit annotations to module init/exit funcs.Link: https://lkml.kernel.org/r/20220922103208.162869-1-xiujianf
rv/monitor: Add __init/__exit annotations to module init/exit funcsAdd missing __init/__exit annotations to module init/exit funcs.Link: https://lkml.kernel.org/r/20220922103208.162869-1-xiujianfeng@huawei.comFixes: 24bce201d798 ("tools/rv: Add dot2k")Fixes: 8812d21219b9 ("rv/monitor: Add the wip monitor skeleton created by dot2k")Fixes: ccc319dcb450 ("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>
rv/monitors: add 'static' qualifier for local symbolsThe sparse tool complains as follows:kernel/trace/rv/monitors/wwnr/wwnr.c:18:19:warning: symbol 'rv_wwnr' was not declared. Should it be stat
rv/monitors: add 'static' qualifier for local symbolsThe 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.comCc: <mingo@redhat.com>Fixes: ccc319dcb450 ("rv/monitor: Add the wwnr monitor")Fixes: 8812d21219b9 ("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>
rv/reactor: add __init/__exit annotations to module init/exit funcsAdd missing __init/__exit annotations to module init/exit funcs.Link: https://lkml.kernel.org/r/20220906141210.132607-1-xiujianf
rv/reactor: add __init/__exit annotations to module init/exit funcsAdd missing __init/__exit annotations to module init/exit funcs.Link: https://lkml.kernel.org/r/20220906141210.132607-1-xiujianfeng@huawei.comFixes: 135b881ea885 ("rv/reactor: Add the printk reactor")Fixes: e88043c0ac16 ("rv/reactor: Add the panic reactor")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>
rv/monitors: Make monitor's automata definition staticMonitor's automata definition is only used locally, so makethem static for all existing monitors.Link: https://lore.kernel.org/all/202208210
rv/monitors: Make monitor's automata definition staticMonitor's automata definition is only used locally, so makethem static for all existing monitors.Link: https://lore.kernel.org/all/202208210332.gtHXje45-lkp@intel.comLink: https://lore.kernel.org/all/202208210358.6HH3OrVs-lkp@intel.comLink: https://lkml.kernel.org/r/a50e27c3738d6ef809f4201857229fed64799234.1661266564.git.bristot@kernel.orgFixes: ccc319dcb450 ("rv/monitor: Add the wwnr monitor")Fixes: 8812d21219b9 ("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>
rv: Unlock on error path in rv_unregister_reactor()Unlock the "rv_interface_lock" mutex before returning.Link: https://lkml.kernel.org/r/YuvYzNfGMgV+PIhd@kiliFixes: 04acadcb4453 ("rv: Add runti
rv: Unlock on error path in rv_unregister_reactor()Unlock the "rv_interface_lock" mutex before returning.Link: https://lkml.kernel.org/r/YuvYzNfGMgV+PIhd@kiliFixes: 04acadcb4453 ("rv: Add runtime reactors interface")Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv/reactor: Add the panic reactorSample reactor that panics the system when an exception is found. Thisis useful both to capture a vmcore, or to fail-safe a critical system.Link: https://lkml.ke
rv/reactor: Add the panic reactorSample reactor that panics the system when an exception is found. Thisis useful both to capture a vmcore, or to fail-safe a critical system.Link: https://lkml.kernel.org/r/729aae3aba95f35738b8f8180e626d747d1d9da2.1659052063.git.bristot@kernel.orgCc: 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.orgCc: linux-kernel@vger.kernel.orgCc: linux-trace-devel@vger.kernel.orgSigned-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv/reactor: Add the printk reactorA reactor that printks the reaction message.Link: https://lkml.kernel.org/r/b65f18a7fd6dc6659a3008fd7b7392de3465d47b.1659052063.git.bristot@kernel.orgCc: Wim V
rv/reactor: Add the printk reactorA reactor that printks the reaction message.Link: https://lkml.kernel.org/r/b65f18a7fd6dc6659a3008fd7b7392de3465d47b.1659052063.git.bristot@kernel.orgCc: 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.orgCc: linux-kernel@vger.kernel.orgCc: linux-trace-devel@vger.kernel.orgSigned-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
rv/monitor: Add the wwnr monitorPer task wakeup while not running (wwnr) monitor.This model is broken, the reason is that a task can be running in theprocessor without being set as RUNNABLE. Thi
rv/monitor: Add the wwnr monitorPer task wakeup while not running (wwnr) monitor.This model is broken, the reason is that a task can be running in theprocessor without being set as RUNNABLE. Think about a task about tosleep: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 isrunning.Q: Why do we need this model, so?A: To test the reactors.Link: https://lkml.kernel.org/r/473c0fc39967250fdebcff8b620311c11dccad30.1659052063.git.bristot@kernel.orgCc: 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.orgCc: linux-kernel@vger.kernel.orgCc: linux-trace-devel@vger.kernel.orgSigned-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
12