From owner-cvs-src-old@FreeBSD.ORG Thu Jun 25 18:14:39 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 28F22106564A for ; Thu, 25 Jun 2009 18:14:39 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 13E378FC13 for ; Thu, 25 Jun 2009 18:14:39 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5PIEc3F049907 for ; Thu, 25 Jun 2009 18:14:38 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5PIEcWh049905 for cvs-src-old@freebsd.org; Thu, 25 Jun 2009 18:14:38 GMT (envelope-from jhb@repoman.freebsd.org) Message-Id: <200906251814.n5PIEcWh049905@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to jhb@repoman.freebsd.org using -f From: John Baldwin Date: Thu, 25 Jun 2009 18:13:46 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/amd64/amd64 intr_machdep.c io_apic.c msi.c src/sys/amd64/include intr_machdep.h src/sys/i386/i386 intr_machdep.c io_apic.c msi.c src/sys/i386/include intr_machdep.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2009 18:14:39 -0000 jhb 2009-06-25 18:13:46 UTC FreeBSD src repository Modified files: sys/amd64/amd64 intr_machdep.c io_apic.c msi.c sys/amd64/include intr_machdep.h sys/i386/i386 intr_machdep.c io_apic.c msi.c sys/i386/include intr_machdep.h Log: SVN rev 194985 on 2009-06-25 18:13:46Z by jhb - Restore the behavior of pre-allocating IDT vectors for MSI interrupts. This is mostly important for the multiple MSI message case where the IDT vectors for the entire group need to be allocated together. This also restores the assumptions made by the PCI bus code that it could invoke PCIB_MAP_MSI() once MSI vectors were allocated. - To avoid whiplash with CPU assignments, change the way that CPUs are assigned to interrupt sources on activation. Instead of assigning the CPU via pic_assign_cpu() before calling enable_intr(), allow the different interrupt source drivers to ask the MD interrupt code which CPU to use when they allocate an IDT vector. I/O APIC interrupt pins do this in their pic_enable_intr() routines giving the same behavior as before. MSI sources do it when the IDT vectors are allocated during msi_alloc() and msix_alloc(). - Change the intr_table_lock from an sx lock to a mutex. Tested by: rnoland Revision Changes Path 1.43 +38 -35 src/sys/amd64/amd64/intr_machdep.c 1.33 +1 -1 src/sys/amd64/amd64/io_apic.c 1.12 +35 -19 src/sys/amd64/amd64/msi.c 1.22 +3 -0 src/sys/amd64/include/intr_machdep.h 1.39 +38 -35 src/sys/i386/i386/intr_machdep.c 1.37 +1 -1 src/sys/i386/i386/io_apic.c 1.12 +35 -19 src/sys/i386/i386/msi.c 1.23 +3 -0 src/sys/i386/include/intr_machdep.h