Module Name:    src
Committed By:   mhitch
Date:           Thu Sep 10 21:36:39 UTC 2009

Modified Files:
        src/sys/arch/alpha/alpha: pmap.c

Log Message:
Now that secondary cpus are added the cpu_info list earlier, attempt to
send pmap tlb shootdowns to them cause the shootdown job queue to fill up,
but since the cpus aren't running yet, no IPIs get sent.  When the job
queue is full, the bit mask of cpus to send the IPI to is not set and no
shootdown IPI ever gets sent after the cpu is marked running.  Always
set the cpumask even when the queue is full.  Now I get shootdown ipis
on all the secondary cpus.


To generate a diff of this commit:
cvs rdiff -u -r1.240 -r1.241 src/sys/arch/alpha/alpha/pmap.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/alpha/alpha/pmap.c
diff -u src/sys/arch/alpha/alpha/pmap.c:1.240 src/sys/arch/alpha/alpha/pmap.c:1.241
--- src/sys/arch/alpha/alpha/pmap.c:1.240	Tue Aug 18 18:06:53 2009
+++ src/sys/arch/alpha/alpha/pmap.c	Thu Sep 10 21:36:39 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.240 2009/08/18 18:06:53 thorpej Exp $ */
+/* $NetBSD: pmap.c,v 1.241 2009/09/10 21:36:39 mhitch Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2001, 2007, 2008 The NetBSD Foundation, Inc.
@@ -140,7 +140,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.240 2009/08/18 18:06:53 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.241 2009/09/10 21:36:39 mhitch Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -3680,6 +3680,8 @@
 			continue;
 		}
 
+		cpumask |= 1UL << ci->ci_cpuid;
+
 		pq = &pmap_tlb_shootdown_q[ci->ci_cpuid];
 
 		/*
@@ -3719,7 +3721,6 @@
 			pq->pq_count++;
 			TAILQ_INSERT_TAIL(&pq->pq_head, pj, pj_list);
 		}
-		cpumask |= 1UL << ci->ci_cpuid;
 		mutex_spin_exit(&pq->pq_lock);
 	}
 

Reply via email to