From owner-cvs-src-old@FreeBSD.ORG Wed Jul 1 17:20:32 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 3871B1065672 for ; Wed, 1 Jul 2009 17:20:32 +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 07D7E8FC0A for ; Wed, 1 Jul 2009 17:20:32 +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 n61HKVDl040146 for ; Wed, 1 Jul 2009 17:20:31 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n61HKVL9040145 for cvs-src-old@freebsd.org; Wed, 1 Jul 2009 17:20:31 GMT (envelope-from jhb@repoman.freebsd.org) Message-Id: <200907011720.n61HKVL9040145@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to jhb@repoman.freebsd.org using -f From: John Baldwin Date: Wed, 1 Jul 2009 17:20:07 +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 local_apic.c msi.c src/sys/amd64/include intr_machdep.h src/sys/amd64/isa atpic.c src/sys/i386/i386 intr_machdep.c io_apic.c local_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: Wed, 01 Jul 2009 17:20:32 -0000 jhb 2009-07-01 17:20:07 UTC FreeBSD src repository Modified files: sys/amd64/amd64 intr_machdep.c io_apic.c local_apic.c msi.c sys/amd64/include intr_machdep.h sys/amd64/isa atpic.c sys/i386/i386 intr_machdep.c io_apic.c local_apic.c msi.c sys/i386/include intr_machdep.h sys/i386/isa atpic.c sys/kern kern_intr.c sys/sys priv.h Log: SVN rev 195249 on 2009-07-01 17:20:07Z by jhb Improve the handling of cpuset with interrupts. - For x86, change the interrupt source method to assign an interrupt source to a specific CPU to return an error value instead of void, thus allowing it to fail. - If moving an interrupt to a CPU fails due to a lack of IDT vectors in the destination CPU, fail the request with ENOSPC rather than panicing. - For MSI interrupts on x86 (but not MSI-X), only allow cpuset to be used on the first interrupt in a group. Moving the first interrupt in a group moves the entire group. - Use the icu_lock to protect intr_next_cpu() on x86 instead of the intr_table_lock to fix a LOR introduced in the last set of MSI changes. - Add a new privilege PRIV_SCHED_CPUSET_INTR for using cpuset with interrupts. Previously, binding an interrupt to a CPU only performed a privilege check if the interrupt had an interrupt thread. Interrupts without a thread could be bound by non-root users as a result. - If an interrupt event's assign_cpu method fails, then restore the original cpuset mask for the associated interrupt thread. Approved by: re (kib) Revision Changes Path 1.45 +20 -15 src/sys/amd64/amd64/intr_machdep.c 1.34 +12 -6 src/sys/amd64/amd64/io_apic.c 1.58 +3 -3 src/sys/amd64/amd64/local_apic.c 1.13 +63 -17 src/sys/amd64/amd64/msi.c 1.24 +1 -1 src/sys/amd64/include/intr_machdep.h 1.25 +2 -2 src/sys/amd64/isa/atpic.c 1.41 +20 -15 src/sys/i386/i386/intr_machdep.c 1.38 +11 -5 src/sys/i386/i386/io_apic.c 1.61 +3 -3 src/sys/i386/i386/local_apic.c 1.13 +63 -17 src/sys/i386/i386/msi.c 1.25 +1 -1 src/sys/i386/include/intr_machdep.h 1.31 +2 -2 src/sys/i386/isa/atpic.c 1.172 +23 -3 src/sys/kern/kern_intr.c 1.37 +1 -0 src/sys/sys/priv.h