<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/tools/verification/rv/src/in_kernel.c, branch v6.19.11</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v6.19.11</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v6.19.11'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2025-07-24T14:43:46+00:00</updated>
<entry>
<title>tools/rv: Do not skip idle in trace</title>
<updated>2025-07-24T14:43:46+00:00</updated>
<author>
<name>Gabriele Monaco</name>
<email>gmonaco@redhat.com</email>
</author>
<published>2025-07-23T16:12:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f60227f3448911b682c45041c3fbd94f6d3b15a2'/>
<id>urn:sha1:f60227f3448911b682c45041c3fbd94f6d3b15a2</id>
<content type='text'>
Currently, the userspace RV tool skips trace events triggered by the RV
tool itself, this can be changed by passing the parameter -s, which sets
the variable config_my_pid to 0 (instead of the tool's PID).
This has the side effect of skipping events generated by idle (PID 0).

Set config_my_pid to -1 (an invalid pid) to avoid skipping idle.

Cc: Nam Cao &lt;namcao@linutronix.de&gt;
Cc: Tomas Glozar &lt;tglozar@redhat.com&gt;
Cc: Juri Lelli &lt;jlelli@redhat.com&gt;
Cc: Clark Williams &lt;williams@redhat.com&gt;
Cc: John Kacur &lt;jkacur@redhat.com&gt;
Link: https://lore.kernel.org/20250723161240.194860-2-gmonaco@redhat.com
Fixes: 6d60f89691fc ("tools/rv: Add in-kernel monitor interface")
Signed-off-by: Gabriele Monaco &lt;gmonaco@redhat.com&gt;
Signed-off-by: Steven Rostedt (Google) &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tools/rv: Allow rv list to filter for container</title>
<updated>2025-03-24T21:27:40+00:00</updated>
<author>
<name>Gabriele Monaco</name>
<email>gmonaco@redhat.com</email>
</author>
<published>2025-03-05T14:04:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4ffef9579ffc51647c5eb55869fb310f3c1e2db2'/>
<id>urn:sha1:4ffef9579ffc51647c5eb55869fb310f3c1e2db2</id>
<content type='text'>
Add possibility to supply the container name to rv list:

  # rv list sched
  mon1
  mon2
  mon3

This lists only monitors in sched, without indentation.
Supplying -h, any option (string starting with -) or more than 1
argument will still print the usage.
Passing a non-existent container prints nothing and passing no container
continues to print all monitors, showing indentation for nested
monitors, reported after their container.

Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Juri Lelli &lt;juri.lelli@redhat.com&gt;
Link: https://lore.kernel.org/20250305140406.350227-10-gmonaco@redhat.com
Signed-off-by: Gabriele Monaco &lt;gmonaco@redhat.com&gt;
Signed-off-by: Steven Rostedt (Google) &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tools/rv: Add support for nested monitors</title>
<updated>2025-03-24T21:27:40+00:00</updated>
<author>
<name>Gabriele Monaco</name>
<email>gmonaco@redhat.com</email>
</author>
<published>2025-03-05T14:03:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=eba321a16fc6db22cf34d91d997371bed75d0a86'/>
<id>urn:sha1:eba321a16fc6db22cf34d91d997371bed75d0a86</id>
<content type='text'>
RV now supports nested monitors, this functionality requires a container
monitor, which has virtually no functionality besides holding other
monitors, and nested monitors, that have a container as parent.

Nested monitors' sysfs folders are physically nested in the container's
folder, and they are listed in the available_monitors file with the
notation container:monitor.
These changes go against the assumption that each line in the
available_monitors file correspond to a folder in the rv directory,
breaking the functionality of the rv tool.

Add support for nested containers in the rv userspace tool, indenting
nested monitors while listed and allowing both the notation with and
without container name, which are equivalent:

  # rv list
  mon1
  mon2
  container:
   - nested1
   - nested2

  ## notation with container name
  # rv mon container:nested1

  ## notation without container name
  # rv mon nested1

Either way, enabling a nested monitor is the same as enabling any other
non-nested monitor.
Selecting the container with rv mon enables all the nested monitors, if
-t is passed, the trace also includes the monitor name next to the
event:

  # rv mon nested1 -t
  &lt;idle&gt;-0        [004] event   state1 x event    -&gt; state2
  &lt;idle&gt;-0        [004] error   event not expected in state2

  # rv mon sched -t
  &lt;idle&gt;-0        [004] event_nested1   state1 x event    -&gt; state2
  &lt;idle&gt;-0        [004] error_nested1   event not expected in state2

Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Juri Lelli &lt;juri.lelli@redhat.com&gt;
Link: https://lore.kernel.org/20250305140406.350227-7-gmonaco@redhat.com
Signed-off-by: Gabriele Monaco &lt;gmonaco@redhat.com&gt;
Signed-off-by: Steven Rostedt (Google) &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tools/rv: Correct the grammatical errors in the comments</title>
<updated>2024-10-04T19:06:18+00:00</updated>
<author>
<name>Ba Jing</name>
<email>bajing@cmss.chinamobile.com</email>
</author>
<published>2024-09-02T23:34:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f88b8871c70f10d692cc2cfa1fb020c281dd7603'/>
<id>urn:sha1:f88b8871c70f10d692cc2cfa1fb020c281dd7603</id>
<content type='text'>
The form of "print" should be consistent with "parses".

Link: https://lore.kernel.org/20240902233408.8684-1-bajing@cmss.chinamobile.com
Signed-off-by: Ba Jing &lt;bajing@cmss.chinamobile.com&gt;
Signed-off-by: Steven Rostedt (Google) &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tools/rv: Fix curr_reactor uninitialized variable</title>
<updated>2024-02-12T08:58:36+00:00</updated>
<author>
<name>Daniel Bristot de Oliveira</name>
<email>bristot@kernel.org</email>
</author>
<published>2024-02-06T11:05:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=61ec586bc0815959d3314cf7ce242529c977b357'/>
<id>urn:sha1:61ec586bc0815959d3314cf7ce242529c977b357</id>
<content type='text'>
clang is reporting:

$ make HOSTCC=clang CC=clang LLVM_IAS=1

clang -O -g -DVERSION=\"6.8.0-rc3\" -flto=auto -fexceptions
	-fstack-protector-strong -fasynchronous-unwind-tables
	-fstack-clash-protection  -Wall -Werror=format-security
	-Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
	$(pkg-config --cflags libtracefs)  -I include
	-c -o src/in_kernel.o src/in_kernel.c
[...]

src/in_kernel.c:227:6: warning: variable 'curr_reactor' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
  227 |         if (!end)
      |             ^~~~
src/in_kernel.c:242:9: note: uninitialized use occurs here
  242 |         return curr_reactor;
      |                ^~~~~~~~~~~~
src/in_kernel.c:227:2: note: remove the 'if' if its condition is always false
  227 |         if (!end)
      |         ^~~~~~~~~
  228 |                 goto out_free;
      |                 ~~~~~~~~~~~~~
src/in_kernel.c:221:6: warning: variable 'curr_reactor' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
  221 |         if (!start)
      |             ^~~~~~
src/in_kernel.c:242:9: note: uninitialized use occurs here
  242 |         return curr_reactor;
      |                ^~~~~~~~~~~~
src/in_kernel.c:221:2: note: remove the 'if' if its condition is always false
  221 |         if (!start)
      |         ^~~~~~~~~~~
  222 |                 goto out_free;
      |                 ~~~~~~~~~~~~~
src/in_kernel.c:215:20: note: initialize the variable 'curr_reactor' to silence this warning
  215 |         char *curr_reactor;
      |                           ^
      |                            = NULL
2 warnings generated.

Which is correct. Setting curr_reactor to NULL avoids the problem.

Link: https://lkml.kernel.org/r/3a35551149e5ee0cb0950035afcb8082c3b5d05b.1707217097.git.bristot@kernel.org

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu &lt;mhiramat@kernel.org&gt;
Cc: Nathan Chancellor &lt;nathan@kernel.org&gt;
Cc: Nick Desaulniers &lt;ndesaulniers@google.com&gt;
Cc: Bill Wendling &lt;morbo@google.com&gt;
Cc: Justin Stitt &lt;justinstitt@google.com&gt;
Cc: Donald Zickus &lt;dzickus@redhat.com&gt;
Fixes: 6d60f89691fc ("tools/rv: Add in-kernel monitor interface")
Signed-off-by: Daniel Bristot de Oliveira &lt;bristot@kernel.org&gt;
</content>
</entry>
<entry>
<title>tools/rv: Remove unneeded semicolon</title>
<updated>2023-02-01T00:21:12+00:00</updated>
<author>
<name>zhang songyi</name>
<email>zhang.songyi@zte.com.cn</email>
</author>
<published>2022-12-19T06:31:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a37380ef8b54b18717e908e173179bf78c143ed2'/>
<id>urn:sha1:a37380ef8b54b18717e908e173179bf78c143ed2</id>
<content type='text'>
The semicolon after the "}" is unneeded.

Link: https://lore.kernel.org/linux-trace-devel/202212191431057948891@zte.com.cn

Signed-off-by: zhang songyi &lt;zhang.songyi@zte.com.cn&gt;
Acked-by: Daniel Bristot de Oliveira &lt;bristot@kernel.org&gt;
Signed-off-by: Steven Rostedt (Google) &lt;rostedt@goodmis.org&gt;
</content>
</entry>
<entry>
<title>tools/rv: Add in-kernel monitor interface</title>
<updated>2022-12-09T23:06:24+00:00</updated>
<author>
<name>Daniel Bristot de Oliveira</name>
<email>bristot@kernel.org</email>
</author>
<published>2022-11-11T15:53:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6d60f89691fc979e55b88508f4cfa8f6b4c56eac'/>
<id>urn:sha1:6d60f89691fc979e55b88508f4cfa8f6b4c56eac</id>
<content type='text'>
Add the ability to control and trace in-kernel monitors. This is
a generic interface, it will check for existing monitors and enable
standard setup, like enabling reactors.

For example:

  # rv list
  wip                      wakeup in preemptive per-cpu testing monitor. [OFF]
  wwnr                     wakeup while not running per-task testing model. [OFF]

  # rv mon wwnr --help
  rv version 6.1.0-rc4: help

  usage: rv mon wwnr [-h] [-q] [-r reactor] [-s] [-v]
	-h/--help: print this menu and the reactor list
	-r/--reactor 'reactor': enables the 'reactor'
	-s/--self: when tracing (-t), also trace rv command
	-t/--trace: trace monitor's event
	-v/--verbose: print debug messages

  available reactors: nop printk panic

  # rv mon wwnr --trace
          &lt;TASK&gt;-PID      [CPU]  TYPE       ID                    STATE x EVENT                    -&gt; NEXT_STATE               FINAL
              |   |          |     |        |                        |     |                           |                       |
              rv-3613     [001] event     3613                  running x switch_out               -&gt; not_running              Y
            sshd-1248     [005] event     1248                  running x switch_out               -&gt; not_running              Y
          &lt;idle&gt;-0        [005] event       71              not_running x wakeup                   -&gt; not_running              Y
          &lt;idle&gt;-0        [005] event       71              not_running x switch_in                -&gt; running                  N
      kcompactd0-71       [005] event       71                  running x switch_out               -&gt; not_running              Y
          &lt;idle&gt;-0        [000] event      860              not_running x wakeup                   -&gt; not_running              Y
          &lt;idle&gt;-0        [000] event      860              not_running x switch_in                -&gt; running                  N
    systemd-oomd-860      [000] event      860                  running x switch_out               -&gt; not_running              Y
          &lt;idle&gt;-0        [000] event      860              not_running x wakeup                   -&gt; not_running              Y
          &lt;idle&gt;-0        [000] event      860              not_running x switch_in                -&gt; running                  N
    systemd-oomd-860      [000] event      860                  running x switch_out               -&gt; not_running              Y
          &lt;idle&gt;-0        [005] event       71              not_running x wakeup                   -&gt; not_running              Y
          &lt;idle&gt;-0        [005] event       71              not_running x switch_in                -&gt; running                  N
      kcompactd0-71       [005] event       71                  running x switch_out               -&gt; not_running              Y
          &lt;idle&gt;-0        [000] event      860              not_running x wakeup                   -&gt; not_running              Y
          &lt;idle&gt;-0        [000] event      860              not_running x switch_in                -&gt; running                  N
    systemd-oomd-860      [000] event      860                  running x switch_out               -&gt; not_running              Y
          &lt;idle&gt;-0        [001] event     3613              not_running x wakeup                   -&gt; not_running              Y

Link: https://lkml.kernel.org/r/1e57547e3acadda6e23949b2672c89e76ec2ec42.1668180100.git.bristot@kernel.org

Cc: Jonathan Corbet &lt;corbet@lwn.net&gt;
Signed-off-by: Daniel Bristot de Oliveira &lt;bristot@kernel.org&gt;
Signed-off-by: Steven Rostedt (Google) &lt;rostedt@goodmis.org&gt;
</content>
</entry>
</feed>
