Re: [PATCH v5 7/9] rv: Replace tss and sncid monitors with more complete sts
From: Nam Cao
Date: Mon Jul 28 2025 - 11:53:47 EST
On Mon, Jul 28, 2025 at 03:50:19PM +0200, Gabriele Monaco wrote:
> The tss monitor currently guarantees task switches can happen only while
> scheduling, whereas the sncid monitor enforces scheduling occurs with
> interrupt disabled.
>
> Replace the monitors with a more comprehensive specification which
> implies both but also ensures that:
> * each scheduler call disable interrupts to switch
> * each task switch happens with interrupts disabled
>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Signed-off-by: Gabriele Monaco <gmonaco@xxxxxxxxxx>
I gave this a try on riscv64 and observed some errors:
[ 620.696055] rv: monitor sts does not allow event sched_switch on state enable_to_exit
[ 621.047705] rv: monitor sts does not allow event sched_switch on state enable_to_exit
[ 642.440209] rv: monitor sts does not allow event sched_switch on state enable_to_exit
I tested with two user programs:
int main() { asm ("unimp"); }
int main() { asm ("ebreak"); }
The two programs are repeatedly executed:
#!/bin/bash
./test1 &
./test2 &
# ... repeat lots of time
Any idea?
Nam