Commit e044c0d7 authored by Jan Kiszka's avatar Jan Kiszka
Browse files

ipipe: Disable rcuidle trace path when running over the head domain



We do not need the special handling of __DO_TRACE(..., rcuidle=1) when
running over the head domain. In fact, we cannot use it because it
switches to srcu which is incompatible with that context. It's safe to
switch to normal RCU because no head domain caller of a trace_*_rcuidle
tracepoints should do this from rcu-problematic paths, specifically
idle.

Ported from the dovetail queue.
Signed-off-by: Jan Kiszka's avatarJan Kiszka <jan.kiszka@siemens.com>
parent 3c94f343
......@@ -19,6 +19,7 @@
#include <linux/cpumask.h>
#include <linux/rcupdate.h>
#include <linux/tracepoint-defs.h>
#include <linux/ipipe.h>
struct module;
struct tracepoint;
......@@ -210,7 +211,7 @@ static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p)
__DO_TRACE(&__tracepoint_##name, \
TP_PROTO(data_proto), \
TP_ARGS(data_args), \
TP_CONDITION(cond), 1); \
TP_CONDITION(cond), ipipe_root_p); \
}
#else
#define __DECLARE_TRACE_RCU(name, proto, args, cond, data_proto, data_args)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment