On Wed, 2025-04-23 at 08:50 +0200, Nam Cao wrote:
> Add a monitor for checking that real-time tasks do not go to sleep in
> a
> manner that may cause undesirable latency.
> 
> Also change
>       RV depends on TRACING
> to
>       RV select TRACING
> to avoid the following recursive dependency:
> 
>  error: recursive dependency detected!
>       symbol TRACING is selected by PREEMPTIRQ_TRACEPOINTS
>       symbol PREEMPTIRQ_TRACEPOINTS depends on TRACE_IRQFLAGS
>       symbol TRACE_IRQFLAGS is selected by RV_MON_SLEEP
>       symbol RV_MON_SLEEP depends on RV
>       symbol RV depends on TRACING
> 
> Signed-off-by: Nam Cao <[email protected]>
> ---
> 

I've been playing with these monitors, code-wise they look good.
I tested a bit and they seem to work without many surprises by doing
something as simple as:

perf stat -e rv:error_sleep stress-ng --cpu-sched 1 -t 10s
  -- shows several errors --

perf stat -e rv:error_sleep stress-ng --prio-inv 1 --prio-inv-policy rr
  -- shows only 1 error (normal while starting the program?) --

Not quite sound, but does it look a reasonable test to you?

I quickly tried the same with the other monitor comparing the number of
errors with the page_faults generated by perf, but that didn't make too
much sense. Perhaps I'm doing something wrong here though (the number
reported by perf for page faults feels a bit too high).

perf stat -e page-faults -e rv:error_pagefault stress-ng --cyclic 1

Anyway, the monitor looks good to me

  Reviewed-by: Gabriele Monaco <[email protected]>

but it'd be nice if you have tips to share how to quickly test it (e.g.
without writing a custom workload).

Thanks,
Gabriele


Reply via email to