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