Android调度程序分析-进程自动唤醒?

Android调度程序分析-进程自动唤醒?,android,scheduler,ftrace,Android,Scheduler,Ftrace,我目前正在使用ftrace(特别是通过Android上的atrace)来帮助我理解调度程序的线程唤醒流程。然而,下面这一行让我感到困惑。它表明当前任务(ls-4787)正在自行唤醒(comm=ls pid=4787) 为什么会或如何会发生这种情况?我想不出任何情况下,当前正在运行的进程(已经在运行队列中!)会。。。将自身添加到队列中。我读错了吗?感谢您可能提供的任何帮助 kworker/0:0-4692 ( 4692) [000] d..3 52894.176161: sched_switc

我目前正在使用ftrace(特别是通过Android上的atrace)来帮助我理解调度程序的线程唤醒流程。然而,下面这一行让我感到困惑。它表明当前任务(ls-4787)正在自行唤醒(comm=ls pid=4787)

为什么会或如何会发生这种情况?我想不出任何情况下,当前正在运行的进程(已经在运行队列中!)会。。。将自身添加到队列中。我读错了吗?感谢您可能提供的任何帮助

 kworker/0:0-4692  ( 4692) [000] d..3 52894.176161: sched_switch: prev_comm=kworker/0:0 prev_pid=4692 prev_prio=120 prev_state=S ==> next_comm=ls next_pid=4787 next_prio=120
        adbd-209   (  209) [001] d..3 52894.176192: sched_switch: prev_comm=adbd prev_pid=209 prev_prio=120 prev_state=S ==> next_comm=adbd next_pid=230 next_prio=120
          ls-4787  ( 4787) [000] dN.4 52894.176204: sched_wakeup: comm=kworker/0:0 pid=4692 prio=120 success=1 target_cpu=000
          ls-4787  ( 4787) [000] dN.4 52894.176211: sched_wakeup: comm=ls pid=4787 prio=120 success=1 target_cpu=000
          ls-4787  ( 4787) [000] d..3 52894.176221: sched_switch: prev_comm=ls prev_pid=4787 prev_prio=120 prev_state=R+ ==> next_comm=kworker/0:0 next_pid=4692 next_prio=120
作为补充,这些特殊的实例似乎总是与kworker事件耦合在一起,但我不确定从调度器的角度来看,为什么会对其产生影响