digraph state_automaton { center = true; size = "7,11"; {node [shape = doublecircle] "any_thread_running"}; {node [shape = circle] "any_thread_running"}; {node [shape = circle] "nested_preempt"}; {node [shape = plaintext, style=invis, label=""] "__init_preempt_irq"}; {node [shape = circle] "preempt_irq"}; {node [shape = circle] "rescheduling"}; "__init_preempt_irq" -> "preempt_irq"; "any_thread_running" [label = "any_thread_running", color = green3]; "any_thread_running" -> "any_thread_running" [ label = "schedule_entry\nirq_entry" ]; "any_thread_running" -> "rescheduling" [ label = "sched_need_resched" ]; "nested_preempt" [label = "nested_preempt"]; "nested_preempt" -> "any_thread_running" [ label = "schedule_entry_preempt\nschedule_entry" ]; "nested_preempt" -> "nested_preempt" [ label = "irq_entry" ]; "nested_preempt" -> "preempt_irq" [ label = "sched_need_resched" ]; "preempt_irq" [label = "preempt_irq"]; "preempt_irq" -> "nested_preempt" [ label = "schedule_entry_preempt\nschedule_entry" ]; "preempt_irq" -> "preempt_irq" [ label = "irq_entry\nsched_need_resched" ]; "rescheduling" [label = "rescheduling"]; "rescheduling" -> "any_thread_running" [ label = "schedule_entry_preempt\nschedule_entry" ]; "rescheduling" -> "preempt_irq" [ label = "irq_entry" ]; "rescheduling" -> "rescheduling" [ label = "sched_need_resched" ]; { rank = min ; "__init_preempt_irq"; "preempt_irq"; } }