函数逻辑报告 |
Source Code:kernel\trace\trace_sched_wakeup.c |
Create Date:2022-07-27 13:16:58 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:probe_wakeup_sched_switch
函数原型:static void notrace probe_wakeup_sched_switch(void *ignore, bool preempt, struct task_struct *prev, struct task_struct *next)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
void * | ignore | |
bool | preempt | |
struct task_struct * | prev | |
struct task_struct * | next |
443 | 如果此条件成立可能性小(为编译器优化)(!tracer_enabled)则返回 |
453 | smp_rmb() |
455 | 如果next不等于wakeup_task则返回 |
462 | disabled等于atomic_inc_return( & disabled) |
463 | 如果此条件成立可能性大(为编译器优化)(disabled != 1)则转到:out |
466 | local_irq_save(flags) |
470 | 如果此条件成立可能性小(为编译器优化)(!tracer_enabled || next != wakeup_task)则转到:out_unlock |
474 | data等于per_cpu_ptr(data, wakeup_cpu) |
477 | tracing_sched_switch_trace(wakeup_trace, prev, next, flags, pc) |
478 | __trace_stack(wakeup_trace, flags, 0, pc) |
480 | T0等于preempt_timestamp |
481 | T1等于ftrace_now(cpu) |
487 | 如果此条件成立可能性大(为编译器优化)(!is_tracing_stopped())则 |
488 | max_latency等于delta |
489 | update_max_tr(wakeup_trace, wakeup_task, wakeup_cpu, NULL) |
492 | out_unlock : |
494 | arch_spin_unlock( & wakeup_lock) |
495 | local_irq_restore(flags) |
496 | out : |
497 | atomic_dec( & disabled) |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |