Date: Mon, 2 Aug 2004 15:31:10 +0000 (UTC) From: Scott Long <scottl@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/i386/i386 intr_machdep.c io_apic.c src/sys/i386/include intr_machdep.h src/sys/i386/isa atpic.c Message-ID: <200408021531.i72FVAHG023905@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
scottl 2004-08-02 15:31:10 UTC
FreeBSD src repository
Modified files:
sys/i386/i386 intr_machdep.c io_apic.c
sys/i386/include intr_machdep.h
sys/i386/isa atpic.c
Log:
Optimize intr_execute_handlers() by combining the pic_disable_source() and
pic_eoi_source() into one call. This halves the number of spinlock operations
and indirect function calls in the normal case of handling a normal (ithread)
interrupt. Optimize the atpic and ioapic drivers to use inlines where
appropriate in supporting the intr_execute_handlers() change.
This knocks 900ns, or roughly 1350 cycles, off of the time spent servicing an
interrupt in the common case on my 1.5GHz P4 uniprocessor system. SMP systems
likely won't see as much of a gain due to the ioapic being more efficient than
the atpic. I'll investigate porting this to amd64 soon.
Reviewed by: jhb
Revision Changes Path
1.9 +1 -2 src/sys/i386/i386/intr_machdep.c
1.14 +13 -3 src/sys/i386/i386/io_apic.c
1.5 +7 -1 src/sys/i386/include/intr_machdep.h
1.18 +50 -21 src/sys/i386/isa/atpic.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200408021531.i72FVAHG023905>
