"Piling Up" vs. "Running Through"
If you use a step command when the focus is set to the lockstep group, the CLI runs all threads at the same PC as the thread of interest to the same goal. In contrast, when you enter a step command with its focus set to a nonlockstep thread group, the CLI runs all threads in the indicated group to the same goal as the thread of interest. The set of threads being run to the goal is called the active set. In all cases, TotalView selects the goal based on the PC of the TOI. The step command tells TotalView that it must wait for all threads in the active set to reach the goal.
While the active set is running to the goal, all other threads in the process (or group) run freely.
If a thread that is not in the active set reaches the goal breakpoint, the CLI continues that process again until all active threads reach the goal. Before continuing the process, the CLI can either step the thread over the goal breakpoint, which allows it to run through, or it can hold it, thus causing threads to pile up at the goal.
If a single thread is being run into a critical region, threads that are not in the active set run freely. Otherwise, the thread of interest may not be able to make any progress.
If a lockstep group is running, threads that are not in the active set pile up at the goal when the CLI steps the lockstep group.
Note: Threads pile up when a thread group is specified, and they "run through" when a process group is specified.
"Piling up" can only occur for systems in which the CLI can control threads asynchronous.