Fix issues that were reported by bots or visible only after integration: * Make sure timers are always terminated and waited for when disabling the monitor or when the target terminates * Run per-cpu monitors with migration disabled since preemption is now enabled from tracepoints * Fix a wrong __user specifier in a helper function * Other cleanup and concurrency issues
Differences since V1 [1]: * Fix memory consistency with timer callbacks racing with resets * Add per-obj deallocation hook in rvgen generated code * Do not rely on clean monitor when initialising HA * Add tracepoint synchronisation before returning per-task slots * Fix suffix strip in dot2k * Generate stub deallocation hooks instead of failing build when per-obj miss those [1] - https://lore.kernel.org/lkml/[email protected] Cc: Nam Cao <[email protected]> Cc: Wen Yang <[email protected]> Cc: [email protected] Gabriele Monaco (11): rv: Fix __user specifier usage in extract_params() rv: Fix read_lock scope in per-task DA cleanup rv: Reset per-task DA monitors before releasing the slot rv: Prevent task migration while handling per-CPU events rv: Prevent in-flight per-task handlers from using invalid slots rv: Ensure all pending probes terminate on per-obj monitor destroy rv: Ensure synchronous cleanup for HA monitors rv: Do not rely on clean monitor when initialising HA rv: Add automatic cleanup handlers for per-task HA monitors verification/rvgen: Generate cleanup hook for per-obj monitor verification/rvgen: Fix suffix strip in dot2k Wen Yang (1): rv: Fix monitor start ordering and memory ordering for monitoring flag include/rv/da_monitor.h | 67 +++++++++---- include/rv/ha_monitor.h | 95 ++++++++++++++++++- include/rv/ltl_monitor.h | 1 + kernel/trace/rv/monitors/deadline/deadline.h | 3 +- kernel/trace/rv/monitors/nomiss/nomiss.c | 4 +- kernel/trace/rv/monitors/opid/opid.c | 4 +- kernel/trace/rv/monitors/stall/stall.c | 4 +- tools/verification/rvgen/rvgen/dot2k.py | 19 +++- .../rvgen/rvgen/templates/dot2k/main.c | 4 +- 9 files changed, 171 insertions(+), 30 deletions(-) base-commit: 8bc67e4db64aa72732c474b44ea8622062c903f0 -- 2.54.0
