Monitor stall

  • Name: stall - stalled task monitor

  • Type: per-task hybrid automaton

  • Author: Gabriele Monaco <gmonaco@redhat.com>

Description

The stalled task (stall) monitor is a sample per-task timed monitor that checks if tasks are scheduled within a defined threshold after they are ready:

                       |
                       |
                       v
                     #==========================#
 +-----------------> H         dequeued         H
 |                   #==========================#
 |                     |
sched_switch_wait      | sched_wakeup;reset(clk)
 |                     v
 |                   +--------------------------+ <+
 |                   |         enqueued         |  | sched_wakeup
 |                   | clk < threshold_jiffies  | -+
 |                   +--------------------------+
 |                     |                 ^
 |              sched_switch_in    sched_switch_preempt;reset(clk)
 |                     v                 |
 |                   +--------------------------+
 +------------------ |         running          |
                     +--------------------------+
                       ^ sched_switch_in      |
                       | sched_wakeup         |
                       +----------------------+

The threshold can be configured as a parameter by either booting with the stall.threshold_jiffies=<new value> argument or writing a new value to /sys/module/stall/parameters/threshold_jiffies.

Specification

Graphviz Dot file in tools/verification/models/stall.dot