Re: [PATCH v5 7/9] rv: Replace tss and sncid monitors with more complete sts

From: Nam Cao
Date: Wed Jul 30 2025 - 10:45:10 EST


On Wed, Jul 30, 2025 at 04:16:46PM +0200, Nam Cao wrote:
> Quite interesting that the last "normal" line for cpu1 is:
>
> test-762 [001] dn... 112.407548: da_event_sts: cant_sched x irq_enable -> can_sched (final)
>
> But in the next error line, it mentions the "enable_to_exit". Where did
> this state come from??
>
> <...>-1621 [001] d.... 119.919846: da_event_sts: rv: monitor sts does not allow event sched_switch on state enable_to_exit

Never mind about this one, only cpu3 is accurate here, because I cut off
the trace_printk() as soon as the first error appears:

diff --git a/include/rv/da_monitor.h b/include/rv/da_monitor.h
index 17fa4f6e5ea6..927cf2cda03f 100644
--- a/include/rv/da_monitor.h
+++ b/include/rv/da_monitor.h
@@ -18,15 +18,22 @@

#ifdef CONFIG_RV_REACTORS

+static bool nam_stop = true;
+
#define DECLARE_RV_REACTING_HELPERS(name, type) \
static void cond_react_##name(type curr_state, type event) \
{ \
if (!rv_reacting_on() || !rv_##name.react) \
return; \
+ nam_stop = true;\
rv_##name.react("rv: monitor %s does not allow event %s on state %s\n", \
#name, \
model_get_event_name_##name(event), \
model_get_state_name_##name(curr_state)); \
+ trace_printk("rv: monitor %s does not allow event %s on state %s\n", \
+ #name, \
+ model_get_event_name_##name(event), \
+ model_get_state_name_##name(curr_state)); \
}

#else /* CONFIG_RV_REACTOR */
@@ -136,6 +143,14 @@ da_event_##name(struct da_monitor *da_mon, enum events_##name event) \
model_get_event_name_##name(event), \
model_get_state_name_##name(next_state), \
model_is_final_state_##name(next_state)); \
+ if (nam_stop)\
+ return true;\
+ trace_printk("%s x %s -> %s%s\n", \
+ model_get_state_name_##name(curr_state), \
+ model_get_event_name_##name(event), \
+ model_get_state_name_##name(next_state), \
+ model_is_final_state_##name(next_state)? \
+ " (final)" : ""); \
return true; \
} \
} \