svn commit: r223107 - projects/largeSMP/sys/ia64/ia64

Attilio Rao attilio at FreeBSD.org
Wed Jun 15 07:29:21 UTC 2011


Author: attilio
Date: Wed Jun 15 07:29:20 2011
New Revision: 223107
URL: http://svn.freebsd.org/changeset/base/223107

Log:
  Remove the usage of pc_cpumask and pc_other_cpus from ia64.
  
  Reviewed and tested by:	marcel

Modified:
  projects/largeSMP/sys/ia64/ia64/mp_machdep.c

Modified: projects/largeSMP/sys/ia64/ia64/mp_machdep.c
==============================================================================
--- projects/largeSMP/sys/ia64/ia64/mp_machdep.c	Wed Jun 15 07:20:22 2011	(r223106)
+++ projects/largeSMP/sys/ia64/ia64/mp_machdep.c	Wed Jun 15 07:29:20 2011	(r223107)
@@ -139,18 +139,18 @@ ia64_ih_rndzvs(struct thread *td, u_int 
 static u_int
 ia64_ih_stop(struct thread *td, u_int xiv, struct trapframe *tf)
 {
-	cpuset_t mybit;
+	u_int cpuid;
 
 	PCPU_INC(md.stats.pcs_nstops);
-	mybit = PCPU_GET(cpumask);
+	cpuid = PCPU_GET(cpuid);
 
 	savectx(PCPU_PTR(md.pcb));
 
-	CPU_OR_ATOMIC(&stopped_cpus, &mybit);
-	while (!CPU_OVERLAP(&started_cpus, &mybit))
+	CPU_SET_ATOMIC(cpuid, &stopped_cpus);
+	while (!CPU_ISSET(cpuid, &started_cpus))
 		cpu_spinwait();
-	CPU_NAND_ATOMIC(&started_cpus, &mybit);
-	CPU_NAND_ATOMIC(&stopped_cpus, &mybit);
+	CPU_CLR_ATOMIC(cpuid, &started_cpus);
+	CPU_CLR_ATOMIC(cpuid, &stopped_cpus);
 	return (0);
 }
 
@@ -359,8 +359,6 @@ cpu_mp_start()
 
 	STAILQ_FOREACH(pc, &cpuhead, pc_allcpu) {
 		pc->pc_md.current_pmap = kernel_pmap;
-		pc->pc_other_cpus = all_cpus;
-		CPU_NAND(&pc->pc_other_cpus, &pc->pc_cpumask);
 		/* The BSP is obviously running already. */
 		if (pc->pc_cpuid == 0) {
 			pc->pc_md.awake = 1;
@@ -464,7 +462,7 @@ ipi_selected(cpuset_t cpus, int ipi)
 	struct pcpu *pc;
 
 	STAILQ_FOREACH(pc, &cpuhead, pc_allcpu) {
-		if (CPU_OVERLAP(&cpus, &pc->pc_cpumask))
+		if (CPU_ISSET(pc->pc_cpuid, &cpus))
 			ipi_send(pc, ipi);
 	}
 }


More information about the svn-src-projects mailing list