Date: Wed, 1 Jul 2009 17:20:07 +0000 (UTC) From: John Baldwin <jhb@FreeBSD.org> To: cvs-src-old@freebsd.org 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 ... Message-ID: <200907011720.n61HKVL9040145@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907011720.n61HKVL9040145>