enter_lazy_tlb(oldmm, next, this_cpu); } else {
if (next->active_mm != mm) BUG();
switch_mm(oldmm, mm, next, this_cpu); //如果是用户进程,切换页表
}
if (!prev->mm) {
prev->active_mm = NULL;
mmdrop(oldmm);
}
}
/*
* This just switches the register state and the stack.
*/
switch_to(prev, next, prev);
__schedule_tail(prev);
same_process:
reacquire_kernel_lock(current);
if (current->need_resched)
goto need_resched_back;
return;
}
上一页 [1] [2] [3] |