lkml.org 
[lkml]   [2022]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC V2 09/21] rv/monitor: wip instrumentation and Makefile/Kconfig entries
    Date
    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>
    ---
    kernel/trace/rv/Kconfig | 7 +++++++
    kernel/trace/rv/Makefile | 1 +
    kernel/trace/rv/monitor_wip/wip.c | 16 ++++++++--------
    kernel/trace/rv/monitor_wip/wip.h | 2 +-
    4 files changed, 17 insertions(+), 9 deletions(-)

    diff --git a/kernel/trace/rv/Kconfig b/kernel/trace/rv/Kconfig
    index 560408fec0c8..7338e661d78f 100644
    --- a/kernel/trace/rv/Kconfig
    +++ b/kernel/trace/rv/Kconfig
    @@ -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
    diff --git a/kernel/trace/rv/Makefile b/kernel/trace/rv/Makefile
    index 8944274d9b41..20f30741b933 100644
    --- a/kernel/trace/rv/Makefile
    +++ b/kernel/trace/rv/Makefile
    @@ -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
    diff --git a/kernel/trace/rv/monitor_wip/wip.c b/kernel/trace/rv/monitor_wip/wip.c
    index 1aec75e683d2..dd35a042e727 100644
    --- a/kernel/trace/rv/monitor_wip/wip.c
    +++ b/kernel/trace/rv/monitor_wip/wip.c
    @@ -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
    },
    };
    diff --git a/kernel/trace/rv/monitor_wip/wip.h b/kernel/trace/rv/monitor_wip/wip.h
    index 7a751a8896e9..1ba58a5781ff 100644
    --- a/kernel/trace/rv/monitor_wip/wip.h
    +++ b/kernel/trace/rv/monitor_wip/wip.h
    @@ -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>
    --
    2.33.1
    \
     
     \ /
      Last update: 2022-02-14 12:23    [W:4.202 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site