xref: /linux/tools/verification/models/sched/nrp.dot (revision 4ff261e725d7376c12e745fdbe8a33cd6dbd5a83)
1digraph state_automaton {
2	center = true;
3	size = "7,11";
4	{node [shape = doublecircle] "any_thread_running"};
5	{node [shape = circle] "any_thread_running"};
6	{node [shape = circle] "nested_preempt"};
7	{node [shape = plaintext, style=invis, label=""] "__init_preempt_irq"};
8	{node [shape = circle] "preempt_irq"};
9	{node [shape = circle] "rescheduling"};
10	"__init_preempt_irq" -> "preempt_irq";
11	"any_thread_running" [label = "any_thread_running", color = green3];
12	"any_thread_running" -> "any_thread_running" [ label = "schedule_entry\nirq_entry" ];
13	"any_thread_running" -> "rescheduling" [ label = "sched_need_resched" ];
14	"nested_preempt" [label = "nested_preempt"];
15	"nested_preempt" -> "any_thread_running" [ label = "schedule_entry_preempt\nschedule_entry" ];
16	"nested_preempt" -> "nested_preempt" [ label = "irq_entry" ];
17	"nested_preempt" -> "preempt_irq" [ label = "sched_need_resched" ];
18	"preempt_irq" [label = "preempt_irq"];
19	"preempt_irq" -> "nested_preempt" [ label = "schedule_entry_preempt\nschedule_entry" ];
20	"preempt_irq" -> "preempt_irq" [ label = "irq_entry\nsched_need_resched" ];
21	"rescheduling" [label = "rescheduling"];
22	"rescheduling" -> "any_thread_running" [ label = "schedule_entry_preempt\nschedule_entry" ];
23	"rescheduling" -> "preempt_irq" [ label = "irq_entry" ];
24	"rescheduling" -> "rescheduling" [ label = "sched_need_resched" ];
25	{ rank = min ;
26		"__init_preempt_irq";
27		"preempt_irq";
28	}
29}
30