| digraph state_automaton { | |
| center = true; | |
| size = "7,11"; | |
| {node [shape = circle] "enqueued"}; | |
| {node [shape = plaintext, style=invis, label=""] "__init_dequeued"}; | |
| {node [shape = doublecircle] "dequeued"}; | |
| {node [shape = circle] "running"}; | |
| "__init_dequeued" -> "dequeued"; | |
| "enqueued" [label = "enqueued\nclk < threshold_jiffies"]; | |
| "running" [label = "running"]; | |
| "dequeued" [label = "dequeued", color = green3]; | |
| "running" -> "running" [ label = "sched_switch_in\nsched_wakeup" ]; | |
| "enqueued" -> "enqueued" [ label = "sched_wakeup" ]; | |
| "enqueued" -> "running" [ label = "sched_switch_in" ]; | |
| "running" -> "dequeued" [ label = "sched_switch_wait" ]; | |
| "dequeued" -> "enqueued" [ label = "sched_wakeup;reset(clk)" ]; | |
| "running" -> "enqueued" [ label = "sched_switch_preempt;reset(clk)" ]; | |
| { rank = min ; | |
| "__init_dequeued"; | |
| "dequeued"; | |
| } | |
| } |