1digraph state_automaton { 2 center = true; 3 size = "7,11"; 4 {node [shape = circle] "idle"}; 5 {node [shape = plaintext, style=invis, label=""] "__init_ready"}; 6 {node [shape = doublecircle] "ready"}; 7 {node [shape = circle] "ready"}; 8 {node [shape = circle] "running"}; 9 {node [shape = circle] "sleeping"}; 10 {node [shape = circle] "throttled"}; 11 "__init_ready" -> "ready"; 12 "idle" [label = "idle"]; 13 "idle" -> "idle" [ label = "dl_server_idle" ]; 14 "idle" -> "ready" [ label = "dl_replenish;reset(clk)" ]; 15 "idle" -> "running" [ label = "sched_switch_in" ]; 16 "idle" -> "sleeping" [ label = "dl_server_stop" ]; 17 "idle" -> "throttled" [ label = "dl_throttle" ]; 18 "ready" [label = "ready\nclk < DEADLINE_NS()", color = green3]; 19 "ready" -> "idle" [ label = "dl_server_idle" ]; 20 "ready" -> "ready" [ label = "sched_wakeup\ndl_replenish;reset(clk)" ]; 21 "ready" -> "running" [ label = "sched_switch_in" ]; 22 "ready" -> "sleeping" [ label = "dl_server_stop" ]; 23 "ready" -> "throttled" [ label = "dl_throttle;is_defer == 1" ]; 24 "running" [label = "running\nclk < DEADLINE_NS()"]; 25 "running" -> "idle" [ label = "dl_server_idle" ]; 26 "running" -> "running" [ label = "dl_replenish;reset(clk)\nsched_switch_in\nsched_wakeup" ]; 27 "running" -> "sleeping" [ label = "sched_switch_suspend\ndl_server_stop" ]; 28 "running" -> "throttled" [ label = "dl_throttle" ]; 29 "sleeping" [label = "sleeping"]; 30 "sleeping" -> "ready" [ label = "sched_wakeup\ndl_replenish;reset(clk)" ]; 31 "sleeping" -> "running" [ label = "sched_switch_in" ]; 32 "sleeping" -> "sleeping" [ label = "dl_server_stop\ndl_server_idle" ]; 33 "sleeping" -> "throttled" [ label = "dl_throttle;is_constr_dl == 1 || is_defer == 1" ]; 34 "throttled" [label = "throttled"]; 35 "throttled" -> "ready" [ label = "dl_replenish;reset(clk)" ]; 36 "throttled" -> "throttled" [ label = "sched_switch_suspend\nsched_wakeup\ndl_server_idle\ndl_throttle" ]; 37 { rank = min ; 38 "__init_ready"; 39 "ready"; 40 } 41} 42