From owner-cvs-all@FreeBSD.ORG Mon Oct 24 21:04:19 2005 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E56A016A41F; Mon, 24 Oct 2005 21:04:19 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8C6F143D48; Mon, 24 Oct 2005 21:04:19 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j9OL4JXP045828; Mon, 24 Oct 2005 21:04:19 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from jhb@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j9OL4J2B045827; Mon, 24 Oct 2005 21:04:19 GMT (envelope-from jhb) Message-Id: <200510242104.j9OL4J2B045827@repoman.freebsd.org> From: John Baldwin Date: Mon, 24 Oct 2005 21:04:19 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/kern subr_kdb.c subr_smp.c src/sys/amd64/amd64 mp_machdep.c trap.c src/sys/amd64/conf NOTES src/sys/amd64/include smp.h src/sys/conf options.amd64 options.i386 options.pc98 src/sys/i386/conf NOTES src/sys/i386/i386 mp_machdep.c trap.c ... X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Oct 2005 21:04:20 -0000 jhb 2005-10-24 21:04:19 UTC FreeBSD src repository Modified files: sys/kern subr_kdb.c subr_smp.c sys/amd64/amd64 mp_machdep.c trap.c sys/amd64/conf NOTES sys/amd64/include smp.h sys/conf options.amd64 options.i386 options.pc98 sys/i386/conf NOTES sys/i386/i386 mp_machdep.c trap.c sys/i386/include smp.h sys/pc98/conf NOTES sys/sys smp.h Log: Rename the KDB_STOP_NMI kernel option to STOP_NMI and make it apply to all IPI_STOP IPIs. - Change the i386 and amd64 MD IPI code to send an NMI if STOP_NMI is enabled if an attempt is made to send an IPI_STOP IPI. If the kernel option is enabled, there is also a sysctl to change the behavior at runtime (debug.stop_cpus_with_nmi which defaults to enabled). This includes removing stop_cpus_nmi() and making ipi_nmi_selected() a private function for i386 and amd64. - Fix ipi_all(), ipi_all_but_self(), and ipi_self() on i386 and amd64 to properly handle bitmapped IPIs as well as IPI_STOP IPIs when STOP_NMI is enabled. - Fix ipi_nmi_handler() to execute the restart function on the first CPU that is restarted making use of atomic_readandclear() rather than assuming that the BSP is always included in the set of restarted CPUs. Also, the NMI handler didn't clear the function pointer meaning that subsequent stop and restarts could execute the function again. - Define a new macro HAVE_STOPPEDPCBS on i386 and amd64 to control the use of stoppedpcbs[] and always enable it for i386 and amd64 instead of being dependent on KDB_STOP_NMI. It works fine in both the NMI and non-NMI cases. Revision Changes Path 1.264 +47 -12 src/sys/amd64/amd64/mp_machdep.c 1.296 +3 -3 src/sys/amd64/amd64/trap.c 1.46 +1 -1 src/sys/amd64/conf/NOTES 1.85 +2 -3 src/sys/amd64/include/smp.h 1.22 +1 -1 src/sys/conf/options.amd64 1.226 +1 -1 src/sys/conf/options.i386 1.190 +1 -1 src/sys/conf/options.pc98 1.1209 +1 -1 src/sys/i386/conf/NOTES 1.256 +44 -9 src/sys/i386/i386/mp_machdep.c 1.283 +3 -3 src/sys/i386/i386/trap.c 1.83 +2 -3 src/sys/i386/include/smp.h 1.15 +8 -35 src/sys/kern/subr_kdb.c 1.197 +0 -32 src/sys/kern/subr_smp.c 1.65 +1 -1 src/sys/pc98/conf/NOTES 1.85 +0 -3 src/sys/sys/smp.h