staticvoid handle_sched_set_state(void *data, struct task_struct *tsk, int state)
{ if (state == TASK_RUNNING)
da_handle_start_event_sssw(tsk, sched_set_state_runnable_sssw); else
da_handle_event_sssw(tsk, sched_set_state_sleepable_sssw);
}
staticvoid handle_sched_switch(void *data, bool preempt, struct task_struct *prev, struct task_struct *next, unsignedint prev_state)
{ if (preempt)
da_handle_event_sssw(prev, sched_switch_preempt_sssw); elseif (prev_state == TASK_RUNNING)
da_handle_event_sssw(prev, sched_switch_yield_sssw); elseif (prev_state == TASK_RTLOCK_WAIT) /* special case of sleeping task with racy conditions */
da_handle_event_sssw(prev, sched_switch_blocking_sssw); else
da_handle_event_sssw(prev, sched_switch_suspend_sssw);
da_handle_event_sssw(next, sched_switch_in_sssw);
}
staticvoid handle_sched_wakeup(void *data, struct task_struct *p)
{ /* * Wakeup can also lead to signal_wakeup although the system is * actually runnable. The monitor can safely start with this event.
*/
da_handle_start_event_sssw(p, sched_wakeup_sssw);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.