summaryrefslogtreecommitdiff
path: root/kernel/trace/rv/monitors
diff options
context:
space:
mode:
authorGabriele Monaco <gmonaco@redhat.com>2026-06-01 17:38:37 +0200
committerGabriele Monaco <gmonaco@redhat.com>2026-06-03 12:33:25 +0200
commitd9022172c1abea9e220d13ee453813dafec5b9e4 (patch)
treea924bac31d645391d68960ff78017bf60b061d63 /kernel/trace/rv/monitors
parent7c147fae71f3b3542ba3292d2099ef7237cfc0da (diff)
rv: Use 0 to check preemption enabled in opid
Tracepoint handlers no longer run with preemption disabled by default since a46023d5616 ("tracing: Guard __DECLARE_TRACE() use of __DO_TRACE_CALL() with SRCU-fast"), the opid monitor should now count 1 in the preemption count as preemption disabled. Change the rule for preempt_off to preempt > 0. Reviewed-by: Nam Cao <namcao@linutronix.de> Link: https://lore.kernel.org/r/20260601153840.124372-11-gmonaco@redhat.com Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
Diffstat (limited to 'kernel/trace/rv/monitors')
-rw-r--r--kernel/trace/rv/monitors/opid/opid.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/kernel/trace/rv/monitors/opid/opid.c b/kernel/trace/rv/monitors/opid/opid.c
index 2922318c6112..3b6a85e815b8 100644
--- a/kernel/trace/rv/monitors/opid/opid.c
+++ b/kernel/trace/rv/monitors/opid/opid.c
@@ -22,14 +22,8 @@ static u64 ha_get_env(struct ha_monitor *ha_mon, enum envs_opid env, u64 time_ns
if (env == irq_off_opid)
return irqs_disabled();
else if (env == preempt_off_opid) {
- /*
- * If CONFIG_PREEMPTION is enabled, then the tracepoint itself disables
- * preemption (adding one to the preempt_count). Since we are
- * interested in the preempt_count at the time the tracepoint was
- * hit, we consider 1 as still enabled.
- */
if (IS_ENABLED(CONFIG_PREEMPTION))
- return (preempt_count() & PREEMPT_MASK) > 1;
+ return (preempt_count() & PREEMPT_MASK) > 0;
return true;
}
return ENV_INVALID_VALUE;