上下文
Process-1正在core-0上执行。 Core-1闲置。
现在,process-1使用sched_setaffinity()
将其CPU关联性更改为core-1。
问题:
哪个内核函数迁移进程-1以在core-1上执行?
答案 0 :(得分:1)
以下是从内核中sched_setaffinity
系统调用入口点开始的调用序列:
在最后一个函数中,有两种情况,如line 1101中的代码所示:
if (task_running(rq, p) || p->state == TASK_WAKING) {
// ...
stop_one_cpu(cpu_of(rq), migration_cpu_stop, &arg);
// ...
} else if (task_on_rq_queued(p)) {
rq = move_queued_task(rq, &rf, p, dest_cpu);
}
如果要迁移的任务当前正在运行或正在唤醒,则通过调用stop_one_cpu
来迁移它,该move_queued_task
按顺序调用以下函数:
最后一个函数__set_cpus_allowed_ptr
是将任务从当前runqueue实际移动到目标runqueue的函数。请注意,这与从df[['name','full_name','club']] = df[['name','full_name','club']].fillna('')
d = {'Points':'sum', 'Start':'sum', 'Sub':'sum', 'club':'first'}
df = (df.groupby(['name','full_name'], sort=False, as_index=False)
.agg(d)
.reindex(columns=df.columns))
with pd.option_context('display.expand_frame_repr', False):
print (df)
name full_name club Points Start Sub
0 S. Mustafi Shkodran Mustafi Arsenal 74 26 2
1 Bruno Bruno SorianoLlido Villarreal CF 43 15 16
2 Bruno Bruno Gonzalez Cabrera Getafe CF 43 15 16
3 Oscar Oscar dos Santos Emboaba 17 5 10
4 Oscar Oscar Rodriguez Arnaiz Real Madrid CF 17 5 10
5 C. Bravo Claudio Bravo Manchester City 62 23 8
6 Naldo Ronaldo Aparecido Rodrigues FC Schalke 04 58 19 1
7 Naldo Edinaldo Gomes Pereira RCD Espanyol 58 19 1
8 G. Castro Gonzalo Castro Borussia Dortmund 158 46 12
9 Juanfran Juan Francisco Torres Belen Atletico Madrid 160 55 10
10 Juanfran Juan Francisco Moreno Fuertes RC Coruna 160 55 10
的另一个分支调用的函数相同。该分支处理任务处于任何其他状态的情况。