Monitor wwnr ============ - Name: wwrn - wakeup while not running - Type: per-task deterministic automaton - Author: Daniel Bristot de Oliveira <bristot@kernel.org> Description ----------- This is a per-task sample monitor, with the following definition:: | | v wakeup +-------------+ +--------- | | | | not_running | +--------> | | <+ +-------------+ | | | | switch_in | switch_out v | +-------------+ | | running | -+ +-------------+ This model is broken, the reason is that a task can be running in the processor without being set as RUNNABLE. Think about a task about to sleep:: 1: set_current_state(TASK_UNINTERRUPTIBLE); 2: schedule(); And then imagine an IRQ happening in between the lines one and two, waking the task up. BOOM, the wakeup will happen while the task is running. - Why do we need this model, so? - To test the reactors. Specification ------------- Grapviz Dot file in tools/verification/models/wwnr.dot