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; \ } \ } \