Increment td->td_intr_nesting_level for LAPIC timer interrupts. Among other

things it hints SCHED_ULE to run clock swi handlers on their native CPUs,
avoiding many unneeded IPI_PREEMPT calls.
This commit is contained in:
Alexander Motin 2010-07-24 10:49:59 +00:00
parent b577f44398
commit 017cb944b1

View File

@ -811,10 +811,12 @@ lapic_handle_timer(struct trapframe *frame)
critical_enter();
if (lapic_et.et_active) {
td = curthread;
td->td_intr_nesting_level++;
oldframe = td->td_intr_frame;
td->td_intr_frame = frame;
lapic_et.et_event_cb(&lapic_et, lapic_et.et_arg);
td->td_intr_frame = oldframe;
td->td_intr_nesting_level--;
}
critical_exit();
}