Function report |
Source Code:kernel\trace\trace_sched_wakeup.c |
Create Date:2022-07-28 12:10:11 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:probe_wakeup_sched_switch
Proto:static void notrace probe_wakeup_sched_switch(void *ignore, bool preempt, struct task_struct *prev, struct task_struct *next)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| void * | ignore | |
| bool | preempt | |
| struct task_struct * | prev | |
| struct task_struct * | next |
| 443 | If Value for the false possibility is greater at compile time(!tracer_enabled) Then Return |
| 453 | smp_rmb() |
| 455 | If next != wakeup_task Then Return |
| 458 | pc = We mask the PREEMPT_NEED_RESCHED bit so as not to confuse all current users* that think a non-zero value indicates we cannot preempt. |
| 462 | disabled = atomic_inc_return( & disabled) |
| 463 | If Value is more likely to compile time(disabled != 1) Then Go to out |
| 466 | local_irq_save(flags) |
| 470 | If Value for the false possibility is greater at compile time(!tracer_enabled || next != wakeup_task) Then Go to 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) |
| 484 | If Not Should this new latency be reported/recorded? Then Go to out_unlock |
| 487 | If Value is more likely to compile time(!is_tracing_stopped()) Then |
| 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) |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |