From owner-cvs-src@FreeBSD.ORG Mon Aug 2 15:31:10 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C065716A4CE; Mon, 2 Aug 2004 15:31:10 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A77DB43D7B; Mon, 2 Aug 2004 15:31:10 +0000 (GMT) (envelope-from scottl@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i72FVAk3023906; Mon, 2 Aug 2004 15:31:10 GMT (envelope-from scottl@repoman.freebsd.org) Received: (from scottl@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i72FVAHG023905; Mon, 2 Aug 2004 15:31:10 GMT (envelope-from scottl) Message-Id: <200408021531.i72FVAHG023905@repoman.freebsd.org> From: Scott Long Date: Mon, 2 Aug 2004 15:31:10 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD 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 X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Aug 2004 15:31:11 -0000 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