Based on kernel version 6.11
. Page generated on 2024-09-24 08:21 EST
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 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 |