Here is a description of the colors used in the control flow view. Each color represents a state of the process at a given time.
White : this color is used for process from which state is not known. It may happen when you seek quickly at a far time in the trace just after it has been launched. At that moment, the precomputed state information is incomplete. The "unknown" state is used to identify this. Note that the viewer gets refreshed once the precomputation ends.
Green : This color is only used for process when they are running in user mode. That includes execution of all the source code of an executable as well as the libraries it uses.
Pale blue : A process is doing a system call to the kernel, and the mode is switched from process limited rights to super user mode. Only code from the kernel (including modules) should be run in that state.
Yellow : The kernel is running a trap that services a fault. The most frequent trap is the memory page fault trap : it is called every time a page is missing from physical memory.
Orange : IRQ servicing routine is running. It interrupts the currently running process. As the IRQ does not change the currently running process (on some architectures it uses the same stack as the process), the IRQ state is shown in the state of the process. IRQ can be nested : a higher priority interrupt can interrupt a lower priority interrupt.
Pink : SoftIRQ handler is running. A SoftIRQ is normally triggered by an interrupt that whishes to have some work done very soon, but not "now". This is especially useful, for example, to have the longest part of the network stack traversal done : a too long computation in the interrupt handler would increase the latency of the system. Therefore, doing the long part of the computation in a softirq that will be run just after the IRQ handler exits will permits to do this work while interrupts are enabled, without increasing the system latency.
Dark red : A process in that state is waiting for an input/output operation to complete before it can continue its execution.
Dark yellow : A process is ready to run, but waiting to get the CPU (a schedule in event).
Dark purple : A process in zombie state. This state happens when a process exits and then waits for the parent to wait for it (wait() or waitpid()).
Dark green : A process has just been created by its parent and is waiting for first scheduling.
Magenta : The process has exited, but still has the control of the CPU. It may happend if it has some tasks to do in the exit system call.