fix thread migration code (i.e., sched_setaffinity())
- moved migration code into idle() process and updated schedule() to detect when a thread has moved to another CPU in order to avoid doing housekeeping on behalf of the original one - start CPU head from core 0 - keeps track of nested interrupts
This commit is contained in:
@@ -612,9 +612,8 @@ void handle_interrupt(int vector, struct x86_user_context *regs)
|
||||
struct ihk_mc_interrupt_handler *h;
|
||||
struct cpu_local_var *v = get_this_cpu_local_var();
|
||||
|
||||
v->in_interrupt = 1;
|
||||
|
||||
lapic_ack();
|
||||
++v->in_interrupt;
|
||||
|
||||
dkprintf("CPU[%d] got interrupt, vector: %d, RIP: 0x%lX\n",
|
||||
ihk_mc_get_processor_id(), vector, regs->gpr.rip);
|
||||
@@ -684,7 +683,7 @@ void handle_interrupt(int vector, struct x86_user_context *regs)
|
||||
check_signal(0, regs, 0);
|
||||
check_need_resched();
|
||||
|
||||
v->in_interrupt = 0;
|
||||
--v->in_interrupt;
|
||||
}
|
||||
|
||||
void gpe_handler(struct x86_user_context *regs)
|
||||
|
||||
Reference in New Issue
Block a user