它可以看作是许多函数前缀的缩写,包括: ttwu_do_wakeup ttwu_do_activate ttwu_queue_remote ttwu_activate .. and many more - Haris2个回答 5 我会假设它代表 "try_to_wake_up"。例如请参阅“kernel/sched/sched.h”中的注释: 981 /* try_to_wake_up() stats */ 982 unsigned int ttwu_count...
答案是不会,即便在执行action表示的调度路径之前,由于没有锁保护发生了中断唤醒重入,再次执行action,io_schedule, __schdule时,任务的state已经发生了变化,将不会走进dequeue的分支将任务出队. wakeup操作会将任务状态从Taskinterruptable变为TASK_RUNNING!!! 唤醒过程: 核心函数是unlock_buffer. 根据buffer_head的b_s...
调用ttwu_queue,将p加入到cpu的ttwu_queue_wakelist中去, 如果是非cache共享的cpu 锁住cpu的rq,将其加入到activate_task中去,并且p的on_rq设置为TASK_ON_RQ_QUEUED,再调用 ttwu_do_wakeup函数,其函数执行check_preempt_curr,确认当前进程是否可以抢占; 整个过程逻辑其实还是比价简单的,涉及的关键点有如下几个: ...