Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Apr 2006 16:14:37 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 95694 for review
Message-ID:  <200604201614.k3KGEbum012503@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=95694

Change 95694 by jhb@jhb_slimer on 2006/04/20 16:14:36

	Disable interrupts during the CPU shutdown to avoid problems
	with lapic timer interrupt blocking on sched_lock owned by a
	CPU that has been stopped.

Affected files ...

.. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#32 edit
.. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#77 edit

Differences ...

==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#32 (text+ko) ====

@@ -361,6 +361,7 @@
 cpu_reset_proxy()
 {
 
+	disable_intr();
 	cpu_reset_proxy_active = 1;
 	while (cpu_reset_proxy_active == 1)
 		;	/* Wait for other cpu to see that we've started */
@@ -377,6 +378,7 @@
 #ifdef SMP
 	u_int cnt, map;
 
+	disable_intr();
 	if (smp_active) {
 		map = PCPU_GET(other_cpus) & ~stopped_cpus;
 		if (map != 0) {

==== //depot/projects/smpng/sys/i386/i386/vm_machdep.c#77 (text+ko) ====

@@ -526,6 +526,7 @@
 cpu_reset_proxy()
 {
 
+	disable_intr();
 	cpu_reset_proxy_active = 1;
 	while (cpu_reset_proxy_active == 1)
 		;	/* Wait for other cpu to see that we've started */
@@ -550,6 +551,7 @@
 #ifdef SMP
 	u_int cnt, map;
 
+	disable_intr();
 	if (smp_active) {
 		map = PCPU_GET(other_cpus) & ~stopped_cpus;
 		if (map != 0) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200604201614.k3KGEbum012503>