有三种情况需要为task选择cpu:刚创建的进程(fork),刚exec的进程(exec),刚被唤醒的进程(wakeup)他们都会调用select_task_rq,对于cfs,就是select_task_rq_fair。 staticintselect_task_rq_fair(structtask_struct *p,intprev_cpu,intwake_flags) {intsync = (wake_flags & WF_SYNC) && !(current->flags &P...
在任务被重新唤醒或者fork新建时,会通过select_task_rq_fair将任务进行balance,达到充分利用CPU的目的。下面是select_task_rq_fair()流程梳理 细节图编辑于 2023-06-11 07:17・IP 属地浙江 内容所属专栏 hello小崔的Linux 用博客记录linux学习、工作历程与心得体会 订阅专栏 ...
[<ffffffff81058db1>] select_task_rq_fair+0x7a1/0x980 RSP:0018:ffff880038609d60 EFLAGS:00010006 RAX:0000000000300000 RBX:0000000000000c00 RCX:0000000000000000 RDX:0000000000000000 RSI:000000000000000f RDI:000000000000000f RBP: ffff880038609e30 R08: ffff880028210390 R09:0000000000000000 R10:0908000000000000 R11...