xref: /linux/tools/verification/models/deadline/nomiss.dot (revision fdbfee9fc56e13a1307868829d438ad66ab308a4)
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