Re: [PATCH v3 5/9] rv/ha: make da_monitor_reset_hook and EVENT_NONE_LBL overridable
From: Gabriele Monaco
Date: Mon Jun 15 2026 - 06:17:01 EST
On Mon, 2026-06-08 at 00:13 +0800, wen.yang@xxxxxxxxx wrote:
> From: Wen Yang <wen.yang@xxxxxxxxx>
>
> Wrap the two definitions with #ifndef guards so that HA-based
> monitors
> can substitute their own implementations before including this
> header:
>
> /* in monitor.c, before #include <rv/ha_monitor.h> */
> #define da_monitor_reset_hook my_monitor_reset_env
> #define EVENT_NONE_LBL "idle"
>
> No behaviour change for monitors that do not override either macro.
>
> Signed-off-by: Wen Yang <wen.yang@xxxxxxxxx>
> ---
> include/rv/ha_monitor.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/include/rv/ha_monitor.h b/include/rv/ha_monitor.h
> index e5860900a337..610da54c111f 100644
> --- a/include/rv/ha_monitor.h
> +++ b/include/rv/ha_monitor.h
> @@ -36,7 +36,10 @@ static bool ha_monitor_handle_constraint(struct
> da_monitor *da_mon,
> da_id_type id);
> #define da_monitor_event_hook ha_monitor_handle_constraint
> #define da_monitor_init_hook ha_monitor_init_env
> +/* Allow monitors to override da_monitor_reset_hook before including
> this header. */
Just a nit: users can do that but shouldn't do it mindlessly, so let's
add a line like:
"Make sure you still call ha_monitor_reset_env() or reset timers
otherwise."
Other than that looks good
Reviewed-by: Gabriele Monaco <gmonaco@xxxxxxxxxx>
Thanks,
Gabriele
> +#ifndef da_monitor_reset_hook
> #define da_monitor_reset_hook ha_monitor_reset_env
> +#endif
> #define da_monitor_sync_hook() synchronize_rcu()
>
> #if !defined(HA_SKIP_AUTO_CLEANUP) && RV_MON_TYPE == RV_MON_PER_TASK
> @@ -75,7 +78,9 @@ _Static_assert(offsetof(struct ha_monitor, da_mon)
> == 0,
> #define ENV_INVALID_VALUE U64_MAX
> /* Error with no event occurs only on timeouts */
> #define EVENT_NONE EVENT_MAX
> +#ifndef EVENT_NONE_LBL
> #define EVENT_NONE_LBL "none"
> +#endif
> #define ENV_BUFFER_SIZE 64
>
> #ifdef CONFIG_RV_REACTORS