Skip to content
Permalink
Browse files
rv/monitor: wip instrumentation and Makefile/Kconfig entries
Adds the instrumentation to the previously created wip monitor, as an
example of the developer work. It also adds a Makefile and Kconfig
entries.

This is a good example of the manual work that is left for the
developer to do.

Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Steven Rostedt <rostedt@goodmis.org>
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: 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>
  • Loading branch information
Daniel Bristot de Oliveira authored and intel-lab-lkp committed Feb 14, 2022
1 parent 66e3ae1 commit d19976adc824ba2162ba4c5690e0a2f2aba219a6
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 9 deletions.
@@ -13,6 +13,13 @@ menuconfig RV

if RV

config RV_MON_WIP
depends on PREEMPTIRQ_TRACEPOINTS
tristate "WIP monitor"
help
Enable WIP sample monitor, this is a sample monitor that
illustrates the usage of per-cpu monitors.

config RV_REACTORS
bool "Runtime verification reactors"
default y if RV
@@ -2,3 +2,4 @@

obj-$(CONFIG_RV) += rv.o
obj-$(CONFIG_RV_REACTORS) += rv_reactors.o
obj-$(CONFIG_RV_MON_WIP) += monitor_wip/wip.o
@@ -33,36 +33,36 @@ DECLARE_DA_MON_PER_CPU(wip, char);
*
*/

void handle_preempt_disable(void *data, /* XXX: fill header */)
void handle_preempt_disable(void *data, unsigned long ip, unsigned long parent_ip)
{
da_handle_event_wip(preempt_disable);
}

void handle_preempt_enable(void *data, /* XXX: fill header */)
void handle_preempt_enable(void *data, unsigned long ip, unsigned long parent_ip)
{
da_handle_event_wip(preempt_enable);
da_handle_init_event_wip(preempt_enable);
}

void handle_sched_waking(void *data, /* XXX: fill header */)
void handle_sched_waking(void *data, struct task_struct *task)
{
da_handle_event_wip(sched_waking);
}

#define NR_TP 3
#define NR_TP 3
static struct tracepoint_hook_helper tracepoints_to_hook[NR_TP] = {
{
.probe = handle_preempt_disable,
.name = /* XXX: tracepoint name here */,
.name = "preempt_disable",
.registered = 0
},
{
.probe = handle_preempt_enable,
.name = /* XXX: tracepoint name here */,
.name = "preempt_enable",
.registered = 0
},
{
.probe = handle_sched_waking,
.name = /* XXX: tracepoint name here */,
.name = "sched_wakeup",
.registered = 0
},
};
@@ -59,6 +59,6 @@ TRACE_EVENT(error_wip,

/* This part ust be outside protection */
#undef TRACE_INCLUDE_PATH
#define TRACE_INCLUDE_PATH .
#define TRACE_INCLUDE_PATH ../kernel/trace/rv/monitor_wip/
#define TRACE_INCLUDE_FILE wip
#include <trace/define_trace.h>

0 comments on commit d19976a

Please sign in to comment.