Date: Sat, 24 Jul 2010 10:49:59 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r210444 - head/sys/x86/x86 Message-ID: <201007241049.o6OAnxvo001874@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mav Date: Sat Jul 24 10:49:59 2010 New Revision: 210444 URL: http://svn.freebsd.org/changeset/base/210444 Log: 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. Modified: head/sys/x86/x86/local_apic.c Modified: head/sys/x86/x86/local_apic.c ============================================================================== --- head/sys/x86/x86/local_apic.c Sat Jul 24 10:07:17 2010 (r210443) +++ head/sys/x86/x86/local_apic.c Sat Jul 24 10:49:59 2010 (r210444) @@ -811,10 +811,12 @@ lapic_handle_timer(struct trapframe *fra 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(); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007241049.o6OAnxvo001874>