- /* FIXME : we may be tagging syscall mode when being user mode */
- process->execution_stack =
- g_array_set_size(process->execution_stack, 2);
- es = process->state = &g_array_index(process->execution_stack,
- LttvExecutionState, 1);
- es->t = LTTV_STATE_SYSCALL;
- es->n = LTTV_STATE_SUBMODE_NONE;
- es->entry = *timestamp;
- //g_assert(timestamp->tv_sec != 0);
- es->change = *timestamp;
- es->cum_cpu_time = ltt_time_zero;
- if(es->s == LTTV_STATE_WAIT_FORK)
- es->s = LTTV_STATE_WAIT;
+ /* CHECK : we may be tagging syscall mode when being user mode
+ * (should be fixed now) */
+ if (es->s == LTTV_STATE_WAIT_CPU) {
+ /* nothing to do: scheduled out from userspace */
+ } else {
+ process->execution_stack =
+ g_array_set_size(process->execution_stack, 2);
+ es = process->state = &g_array_index(process->execution_stack,
+ LttvExecutionState, 1);
+ es->t = LTTV_STATE_SYSCALL;
+ es->n = LTTV_STATE_SUBMODE_NONE;
+ es->entry = *timestamp;
+ //g_assert(timestamp->tv_sec != 0);
+ es->change = *timestamp;
+ es->cum_cpu_time = ltt_time_zero;
+ if(es->s == LTTV_STATE_WAIT_FORK)
+ es->s = LTTV_STATE_WAIT;
+ }