Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jul 2002 13:28:56 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 14156 for review
Message-ID:  <200207122028.g6CKSuPv097710@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=14156

Change 14156 by peter@peter_daintree on 2002/07/12 13:28:19

	IFC @14154

Affected files ...

.. //depot/projects/pmap/sys/alpha/alpha/genassym.c#4 integrate
.. //depot/projects/pmap/sys/alpha/alpha/swtch.s#3 integrate
.. //depot/projects/pmap/sys/i386/i386/genassym.c#6 integrate
.. //depot/projects/pmap/sys/i386/i386/pmap.c#26 integrate
.. //depot/projects/pmap/sys/i386/i386/swtch.s#6 integrate
.. //depot/projects/pmap/sys/ia64/ia64/genassym.c#5 integrate
.. //depot/projects/pmap/sys/ia64/ia64/swtch.s#3 integrate
.. //depot/projects/pmap/sys/kern/kern_switch.c#7 integrate
.. //depot/projects/pmap/sys/kern/kern_synch.c#6 integrate
.. //depot/projects/pmap/sys/kern/sys_process.c#8 integrate
.. //depot/projects/pmap/sys/netinet/udp_usrreq.c#6 integrate
.. //depot/projects/pmap/sys/powerpc/powerpc/genassym.c#5 integrate
.. //depot/projects/pmap/sys/powerpc/powerpc/swtch.s#5 integrate
.. //depot/projects/pmap/sys/sparc64/include/smp.h#7 integrate
.. //depot/projects/pmap/sys/sparc64/sparc64/genassym.c#8 integrate
.. //depot/projects/pmap/sys/sparc64/sparc64/swtch.s#7 integrate
.. //depot/projects/pmap/sys/sys/proc.h#7 integrate
.. //depot/projects/pmap/sys/ufs/ffs/README.snapshot#2 integrate
.. //depot/projects/pmap/sys/vm/vm_zeroidle.c#4 integrate

Differences ...

==== //depot/projects/pmap/sys/alpha/alpha/genassym.c#4 (text+ko) ====

@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)genassym.c	5.11 (Berkeley) 5/10/91
- * $FreeBSD: src/sys/alpha/alpha/genassym.c,v 1.38 2002/06/29 17:26:10 julian Exp $
+ * $FreeBSD: src/sys/alpha/alpha/genassym.c,v 1.39 2002/07/12 18:34:21 jhb Exp $
  */
 
 #include <sys/param.h>
@@ -80,8 +80,6 @@
 ASSYM(TD_PCB, offsetof(struct thread, td_pcb));
 ASSYM(TD_KSE, offsetof(struct thread, td_kse));
 ASSYM(TD_PROC, offsetof(struct thread, td_proc));
-ASSYM(TD_STATE, offsetof(struct thread, td_state));
-ASSYM(TDS_RUNNING, TDS_RUNNING);
 
 ASSYM(KE_FLAGS, offsetof(struct kse, ke_flags));
 

==== //depot/projects/pmap/sys/alpha/alpha/swtch.s#3 (text+ko) ====

@@ -25,7 +25,7 @@
  * rights to redistribute these changes.
  *
  *	$NetBSD: locore.s,v 1.47 1998/03/22 07:26:32 thorpej Exp $
- * $FreeBSD: src/sys/alpha/alpha/swtch.s,v 1.32 2002/06/29 17:26:11 julian Exp $
+ * $FreeBSD: src/sys/alpha/alpha/swtch.s,v 1.33 2002/07/12 18:34:21 jhb Exp $
  */
 
 #define _LOCORE
@@ -127,9 +127,6 @@
 	mov	v0, s2				/* s2 = new thread */
 	ldq	s3, TD_MD_PCBPADDR(s2)		/* s3 = new pcbpaddr */
 
-	ldiq	t0, TDS_RUNNING
-	stl	t0, TD_STATE(s2)
-
 	/*
 	 * Check to see if we're switching to ourself.  If we are,
 	 * don't bother loading the new context.

==== //depot/projects/pmap/sys/i386/i386/genassym.c#6 (text+ko) ====

@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)genassym.c	5.11 (Berkeley) 5/10/91
- * $FreeBSD: src/sys/i386/i386/genassym.c,v 1.126 2002/07/10 20:15:57 dillon Exp $
+ * $FreeBSD: src/sys/i386/i386/genassym.c,v 1.128 2002/07/12 20:17:06 dillon Exp $
  */
 
 #include "opt_kstack_pages.h"
@@ -82,7 +82,6 @@
 ASSYM(P_STATE, offsetof(struct proc, p_state));
 ASSYM(P_UAREA, offsetof(struct proc, p_uarea));
 
-ASSYM(TD_STATE, offsetof(struct thread, td_state));
 ASSYM(TD_FLAGS, offsetof(struct thread, td_flags));
 ASSYM(TD_WCHAN, offsetof(struct thread, td_wchan));
 ASSYM(TD_PCB, offsetof(struct thread, td_pcb));
@@ -90,6 +89,7 @@
 ASSYM(TD_PROC, offsetof(struct thread, td_proc));
 ASSYM(TD_INTR_NESTING_LEVEL, offsetof(struct thread, td_intr_nesting_level));
 ASSYM(TD_CRITNEST, offsetof(struct thread, td_critnest));
+ASSYM(TD_SWITCHIN, offsetof(struct thread, td_switchin));
 ASSYM(TD_MD, offsetof(struct thread, td_md));
 
 ASSYM(P_MD, offsetof(struct proc, p_md));
@@ -100,9 +100,6 @@
 ASSYM(KEF_ASTPENDING, KEF_ASTPENDING);
 ASSYM(KEF_NEEDRESCHED, KEF_NEEDRESCHED);
 
-ASSYM(TDS_SLP, TDS_SLP);
-ASSYM(TDS_RUNQ, TDS_RUNQ);
-ASSYM(TDS_RUNNING, TDS_RUNNING);
 ASSYM(V_TRAP, offsetof(struct vmmeter, v_trap));
 ASSYM(V_SYSCALL, offsetof(struct vmmeter, v_syscall));
 ASSYM(V_INTR, offsetof(struct vmmeter, v_intr));

==== //depot/projects/pmap/sys/i386/i386/pmap.c#26 (text+ko) ====

@@ -39,7 +39,7 @@
  * SUCH DAMAGE.
  *
  *	from:	@(#)pmap.c	7.7 (Berkeley)	5/12/91
- * $FreeBSD: src/sys/i386/i386/pmap.c,v 1.337 2002/07/12 07:56:09 peter Exp $
+ * $FreeBSD: src/sys/i386/i386/pmap.c,v 1.338 2002/07/12 20:17:06 dillon Exp $
  */
 
 /*
@@ -2675,7 +2675,39 @@
 	}
 }	
 
+#ifdef SMP
+
 /*
+ *	pmap_zpi_switchin*()
+ *
+ *	These functions allow us to avoid doing IPIs alltogether in certain
+ *	temporary page-mapping situations (page zeroing).  Instead to deal
+ *	with being preempted and moved onto a different cpu we invalidate
+ *	the page when the scheduler switches us in.  This does not occur
+ *	very often so we remain relatively optimal with very little effort.
+ */
+static void
+pmap_zpi_switchin12(void)
+{
+	invlpg((u_int)CADDR1);
+	invlpg((u_int)CADDR2);
+}
+
+static void
+pmap_zpi_switchin2(void)
+{
+	invlpg((u_int)CADDR2);
+}
+
+static void
+pmap_zpi_switchin3(void)
+{
+	invlpg((u_int)CADDR3);
+}
+
+#endif
+
+/*
  *	pmap_zero_page zeros the specified hardware page by mapping 
  *	the page into KVM and using bzero to clear its contents.
  */
@@ -2695,13 +2727,19 @@
 	if (*CMAP2)
 		panic("pmap_zero_page: CMAP2 busy");
 	*CMAP2 = PG_V | PG_RW | phys | PG_A | PG_M;
-	pmap_invalidate_page(kernel_pmap, (vm_offset_t)CADDR2);
+#ifdef SMP
+	curthread->td_switchin = pmap_zpi_switchin2;
+#endif
+	invlpg((u_int)CADDR2);
 #if defined(I686_CPU)
 	if (cpu_class == CPUCLASS_686)
 		i686_pagezero(CADDR2);
 	else
 #endif
 		bzero(CADDR2, PAGE_SIZE);
+#ifdef SMP
+	curthread->td_switchin = NULL;
+#endif
 	*CMAP2 = 0;
 }
 
@@ -2727,13 +2765,19 @@
 	if (*CMAP2)
 		panic("pmap_zero_page: CMAP2 busy");
 	*CMAP2 = PG_V | PG_RW | phys | PG_A | PG_M;
-	pmap_invalidate_page(kernel_pmap, (vm_offset_t)CADDR2);
+#ifdef SMP
+	curthread->td_switchin = pmap_zpi_switchin2;
+#endif
+	invlpg((u_int)CADDR2);
 #if defined(I686_CPU)
 	if (cpu_class == CPUCLASS_686 && off == 0 && size == PAGE_SIZE)
 		i686_pagezero(CADDR2);
 	else
 #endif
 		bzero((char *)CADDR2 + off, size);
+#ifdef SMP
+	curthread->td_switchin = NULL;
+#endif
 	*CMAP2 = 0;
 }
 
@@ -2759,13 +2803,19 @@
 	if (*CMAP3)
 		panic("pmap_zero_page: CMAP3 busy");
 	*CMAP3 = PG_V | PG_RW | phys | PG_A | PG_M;
-	invlpg((vm_offset_t)CADDR3);	/* SMP: local cpu only */
+#ifdef SMP
+	curthread->td_switchin = pmap_zpi_switchin3;
+#endif
+	invlpg((u_int)CADDR3);
 #if defined(I686_CPU)
 	if (cpu_class == CPUCLASS_686)
 		i686_pagezero(CADDR3);
 	else
 #endif
 		bzero(CADDR3, PAGE_SIZE);
+#ifdef SMP
+	curthread->td_switchin = NULL;
+#endif
 	*CMAP3 = 0;
 }
 
@@ -2785,13 +2835,20 @@
 		panic("pmap_copy_page: CMAP2 busy");
 	*CMAP1 = PG_V | VM_PAGE_TO_PHYS(src) | PG_A;
 	*CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(dst) | PG_A | PG_M;
-	/*
-	 * XXX we "know" that CADDR2 immediately follows CADDR1 and use
-	 * that to save an IPI on SMP systems.
-	 */
-	pmap_invalidate_range(kernel_pmap, (vm_offset_t)CADDR1,
-	    (vm_offset_t)CADDR2 + PAGE_SIZE);
+#ifdef I386_CPU
+	invltlb();
+#else
+#ifdef SMP
+	curthread->td_switchin = pmap_zpi_switchin12;
+#endif
+	invlpg((u_int)CADDR1);
+	invlpg((u_int)CADDR2);
+#endif
 	bcopy(CADDR1, CADDR2, PAGE_SIZE);
+
+#ifdef SMP
+	curthread->td_switchin = NULL;
+#endif
 	*CMAP1 = 0;
 	*CMAP2 = 0;
 }

==== //depot/projects/pmap/sys/i386/i386/swtch.s#6 (text+ko) ====

@@ -33,7 +33,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/i386/i386/swtch.s,v 1.132 2002/06/29 17:26:16 julian Exp $
+ * $FreeBSD: src/sys/i386/i386/swtch.s,v 1.133 2002/07/12 18:34:21 jhb Exp $
  */
 
 #include "opt_npx.h"
@@ -171,13 +171,6 @@
 
 sw1b:
 	movl	%eax,%ecx
-
-#ifdef	INVARIANTS
-	cmpb	$TDS_RUNQ,TD_STATE(%ecx)
-	jne	badsw2
-#endif
-
-	movl	$TDS_RUNNING,TD_STATE(%ecx)
 	movl	TD_PCB(%ecx),%edx
 
 #if defined(SWTCH_OPTIM_STATS)
@@ -316,13 +309,6 @@
 	ret
 
 #ifdef INVARIANTS
-badsw2:
-	pushal
-	pushl	$sw0_2
-	call	panic
-
-sw0_2:	.asciz	"cpu_switch: not TDS_RUNQ"
-
 badsw3:
 	pushal
 	pushl	$sw0_3

==== //depot/projects/pmap/sys/ia64/ia64/genassym.c#5 (text+ko) ====

@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)genassym.c	5.11 (Berkeley) 5/10/91
- * $FreeBSD: src/sys/ia64/ia64/genassym.c,v 1.29 2002/06/29 18:26:18 julian Exp $
+ * $FreeBSD: src/sys/ia64/ia64/genassym.c,v 1.30 2002/07/12 18:34:22 jhb Exp $
  */
 
 #include <sys/param.h>
@@ -76,11 +76,9 @@
 
 ASSYM(TD_PROC,		offsetof(struct thread, td_proc));
 ASSYM(TD_PCB,		offsetof(struct thread, td_pcb));
-ASSYM(TD_STATE,		offsetof(struct thread, td_state));
 ASSYM(TD_KSE,		offsetof(struct thread, td_kse));
 ASSYM(TD_KSTACK,	offsetof(struct thread, td_kstack));
 ASSYM(TD_MD_FLAGS,	offsetof(struct thread, td_md.md_flags));
-ASSYM(TDS_RUNNING,	TDS_RUNNING);
 
 ASSYM(KE_FLAGS, offsetof(struct kse, ke_flags));
 

==== //depot/projects/pmap/sys/ia64/ia64/swtch.s#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- *	$FreeBSD: src/sys/ia64/ia64/swtch.s,v 1.22 2002/06/29 18:26:18 julian Exp $
+ *	$FreeBSD: src/sys/ia64/ia64/swtch.s,v 1.23 2002/07/12 18:34:22 jhb Exp $
  */
 
 #include <machine/asm.h>
@@ -283,12 +283,6 @@
 	st8	[r14]=r4		// set r13->pc_curthread
 	mov	ar.k7=r4
 	;;
-// Julian's guess at settinghte thread state
-	add	r15=TD_STATE,r4
-	;;
-	mov	[r15]=TDS_RUNNING
-	;;
-// end of  julian's guess
 	add	r15=TD_PCB,r4
 	;;
 	ld8	r15=[r15]

==== //depot/projects/pmap/sys/kern/kern_switch.c#7 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/kern/kern_switch.c,v 1.30 2002/07/11 22:47:58 julian Exp $
+ * $FreeBSD: src/sys/kern/kern_switch.c,v 1.32 2002/07/12 20:16:46 julian Exp $
  */
 
 /***
@@ -153,13 +153,12 @@
 		CTR2(KTR_RUNQ, "choosethread: td=%p pri=%d",
 		    td, td->td_priority);
 	} else {
-		/* Pretend the idle thread was on the run queue. */
+		/* Simulate runq_choose() having returned the idle thread */
 		td = PCPU_GET(idlethread);
-		/* Simulate that it was on the run queue */
-		td->td_state = TDS_RUNQ;
-		td->td_kse->ke_state = KES_UNQUEUED; 
+		td->td_kse->ke_state = KES_RUNNING; 
 		CTR1(KTR_RUNQ, "choosethread: td=%p (idle)", td);
 	}
+	td->td_state = TDS_RUNNING;
 	return (td);
 }
 

==== //depot/projects/pmap/sys/kern/kern_synch.c#6 (text+ko) ====

@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)kern_synch.c	8.9 (Berkeley) 5/19/95
- * $FreeBSD: src/sys/kern/kern_synch.c,v 1.182 2002/07/06 08:47:24 julian Exp $
+ * $FreeBSD: src/sys/kern/kern_synch.c,v 1.183 2002/07/12 20:17:06 dillon Exp $
  */
 
 #include "opt_ddb.h"
@@ -892,6 +892,13 @@
 	if (PCPU_GET(switchtime.sec) == 0)
 		binuptime(PCPU_PTR(switchtime));
 	PCPU_SET(switchticks, ticks);
+
+	/*
+	 * Call the switchin function while still holding the scheduler lock
+	 * (used by the idlezero code and the general page-zeroing code)
+	 */
+	if (td->td_switchin)
+		td->td_switchin();
 }
 
 /*

==== //depot/projects/pmap/sys/kern/sys_process.c#8 (text+ko) ====

@@ -28,7 +28,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/kern/sys_process.c,v 1.95 2002/06/29 17:26:18 julian Exp $
+ * $FreeBSD: src/sys/kern/sys_process.c,v 1.97 2002/07/12 17:21:22 alc Exp $
  */
 
 #include <sys/param.h>
@@ -268,7 +268,9 @@
 		/*
 		 * Wire the page into memory
 		 */
+		vm_page_lock_queues();
 		vm_page_wire(m);
+		vm_page_unlock_queues();
 
 		/*
 		 * We're done with tmap now.
@@ -290,7 +292,9 @@
 		/*
 		 * release the page and the object
 		 */
+		vm_page_lock_queues();
 		vm_page_unwire(m, 1);
+		vm_page_unlock_queues();
 		vm_object_deallocate(object);
 
 		object = NULL;
@@ -334,7 +338,7 @@
 	} r;
 	struct proc *curp, *p, *pp;
 	struct thread *td2;
-	int error, write;
+	int error, write, tmp;
 	int proctree_locked = 0;
 
 	curp = td->td_proc;
@@ -586,9 +590,9 @@
 	case PT_READ_I:
 	case PT_READ_D:
 		PROC_UNLOCK(p);
+		tmp = 0;
 		/* write = 0 set above */
-		iov.iov_base = write ? (caddr_t)&uap->data :
-		    (caddr_t)td->td_retval;
+		iov.iov_base = write ? (caddr_t)&uap->data : (caddr_t)&tmp;
 		iov.iov_len = sizeof(int);
 		uio.uio_iov = &iov;
 		uio.uio_iovcnt = 1;
@@ -611,6 +615,8 @@
 			if (error == 0 || error == ENOSPC || error == EPERM)
 				error = EINVAL;	/* EOF */
 		}
+		if (!write)
+			td->td_retval[0] = tmp;
 		return (error);
 
 	case PT_IO:

==== //depot/projects/pmap/sys/netinet/udp_usrreq.c#6 (text+ko) ====

@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)udp_usrreq.c	8.6 (Berkeley) 5/23/95
- * $FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.116 2002/07/12 08:05:22 truckman Exp $
+ * $FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.117 2002/07/12 09:55:48 truckman Exp $
  */
 
 #include "opt_ipsec.h"
@@ -681,13 +681,8 @@
 	INP_INFO_RLOCK(&udbinfo);
 	inp = in_pcblookup_hash(&udbinfo, addrs[1].sin_addr, addrs[1].sin_port,
 				addrs[0].sin_addr, addrs[0].sin_port, 1, NULL);
-	if (inp == NULL) {
+	if (inp == NULL || inp->inp_socket == NULL) {
 		error = ENOENT;
-		goto outunlocked;
-	}
-	INP_LOCK(inp);
-	if (inp->inp_socket == NULL) {
-		error = ENOENT;
 		goto out;
 	}
 	error = cr_canseesocket(req->td->td_ucred, inp->inp_socket);
@@ -695,8 +690,6 @@
 		goto out;
 	cru2x(inp->inp_socket->so_cred, &xuc);
 out:
-	INP_UNLOCK(inp);
-outunlocked:
 	INP_INFO_RUNLOCK(&udbinfo);
 	splx(s);
 	if (error == 0)

==== //depot/projects/pmap/sys/powerpc/powerpc/genassym.c#5 (text+ko) ====

@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)genassym.c	5.11 (Berkeley) 5/10/91
- * $FreeBSD: src/sys/powerpc/powerpc/genassym.c,v 1.44 2002/07/09 12:57:23 benno Exp $
+ * $FreeBSD: src/sys/powerpc/powerpc/genassym.c,v 1.45 2002/07/12 18:34:22 jhb Exp $
  */
 
 #include <sys/param.h>
@@ -140,8 +140,6 @@
 ASSYM(TD_PROC, offsetof(struct thread, td_proc));
 ASSYM(TD_PCB, offsetof(struct thread, td_pcb));
 ASSYM(TD_KSE, offsetof(struct thread, td_kse));
-ASSYM(TD_STATE, offsetof(struct thread, td_state));
-ASSYM(TDS_RUNNING, TDS_RUNNING);
 
 ASSYM(P_VMSPACE, offsetof(struct proc, p_vmspace));
 

==== //depot/projects/pmap/sys/powerpc/powerpc/swtch.s#5 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/powerpc/powerpc/swtch.s,v 1.15 2002/07/09 12:57:23 benno Exp $ */
+/* $FreeBSD: src/sys/powerpc/powerpc/swtch.s,v 1.16 2002/07/12 18:34:22 jhb Exp $ */
 /* $NetBSD: locore.S,v 1.24 2000/05/31 05:09:17 thorpej Exp $ */
 
 /*
@@ -121,8 +121,6 @@
 
 	/* thread to restore is in r3 */
 .L2:
-	li      %r15,TDS_RUNNING
-	stw     %r15,TD_STATE(%r3)      /* Set KSE state */
 	lwz	%r3, TD_PCB(%r3)
 	lmw	%r12,PCB_CONTEXT(%r3)	/* Load the non-volatile GP regs */
 	mr	%r2,%r12

==== //depot/projects/pmap/sys/sparc64/include/smp.h#7 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/sparc64/include/smp.h,v 1.11 2002/06/08 07:21:52 jake Exp $
+ * $FreeBSD: src/sys/sparc64/include/smp.h,v 1.12 2002/07/12 16:26:49 tmm Exp $
  */
 
 #ifndef	_MACHINE_SMP_H_
@@ -116,8 +116,8 @@
 	ica = &ipi_cache_args;
 	ica->ica_mask = all_cpus;
 	ica->ica_pa = pa;
-	cpu_ipi_selected(all_cpus, 0, (u_long)tl_ipi_dcache_page_inval,
-	    (u_long)ica);
+	cpu_ipi_selected(PCPU_GET(other_cpus), 0,
+	    (u_long)tl_ipi_dcache_page_inval, (u_long)ica);
 	return (&ica->ica_mask);
 }
 
@@ -131,8 +131,8 @@
 	ica = &ipi_cache_args;
 	ica->ica_mask = all_cpus;
 	ica->ica_pa = pa;
-	cpu_ipi_selected(all_cpus, 0, (u_long)tl_ipi_icache_page_inval,
-	    (u_long)ica);
+	cpu_ipi_selected(PCPU_GET(other_cpus), 0,
+	    (u_long)tl_ipi_icache_page_inval, (u_long)ica);
 	return (&ica->ica_mask);
 }
 

==== //depot/projects/pmap/sys/sparc64/sparc64/genassym.c#8 (text+ko) ====

@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)genassym.c	5.11 (Berkeley) 5/10/91
- * $FreeBSD: src/sys/sparc64/sparc64/genassym.c,v 1.35 2002/06/29 17:26:21 julian Exp $
+ * $FreeBSD: src/sys/sparc64/sparc64/genassym.c,v 1.36 2002/07/12 18:34:22 jhb Exp $
  */
 
 #include <sys/param.h>
@@ -232,8 +232,6 @@
 ASSYM(TD_KSTACK, offsetof(struct thread, td_kstack));
 ASSYM(TD_PCB, offsetof(struct thread, td_pcb));
 ASSYM(TD_PROC, offsetof(struct thread, td_proc));
-ASSYM(TD_STATE, offsetof(struct thread, td_state));
-ASSYM(TDS_RUNNING, TDS_RUNNING);
 
 ASSYM(PCB_SIZEOF, sizeof(struct pcb));
 ASSYM(PCB_FPSTATE, offsetof(struct pcb, pcb_fpstate));

==== //depot/projects/pmap/sys/sparc64/sparc64/swtch.s#7 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/sparc64/sparc64/swtch.s,v 1.19 2002/06/29 17:26:21 julian Exp $
+ * $FreeBSD: src/sys/sparc64/sparc64/swtch.s,v 1.20 2002/07/12 18:34:22 jhb Exp $
  */
 
 #include <machine/asmacros.h>
@@ -109,9 +109,6 @@
 	stx	%o0, [PCPU(CURTHREAD)]
 	stx	%o1, [PCPU(CURPCB)]
 
-	mov	TDS_RUNNING, %o2
-	stw	%o2, [%o0 + TD_STATE]
-
 	SET(sched_lock, %o3, %o2)
 	stx	%o0, [%o2 + MTX_LOCK]
 

==== //depot/projects/pmap/sys/sys/proc.h#7 (text+ko) ====

@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)proc.h	8.15 (Berkeley) 5/19/95
- * $FreeBSD: src/sys/sys/proc.h,v 1.227 2002/07/08 01:49:49 peter Exp $
+ * $FreeBSD: src/sys/sys/proc.h,v 1.228 2002/07/12 20:17:06 dillon Exp $
  */
 
 #ifndef _SYS_PROC_H_
@@ -285,6 +285,7 @@
 	int		td_intr_nesting_level; /* (k) Interrupt recursion. */
 	void 		*td_mailbox;	/* the userland mailbox address */
 	struct ucred	*td_ucred;	/* (k) Reference to credentials. */
+	void		(*td_switchin)(void); /* (k) switchin special func */
 #define	td_endzero td_md
 
 #define	td_startcopy td_endzero

==== //depot/projects/pmap/sys/ufs/ffs/README.snapshot#2 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/ufs/ffs/README.snapshot,v 1.2 2001/04/14 18:32:09 mckusick Exp $
+$FreeBSD: src/sys/ufs/ffs/README.snapshot,v 1.3 2002/07/12 19:56:31 trhodes Exp $
 
 Soft Updates Status
 
@@ -30,7 +30,7 @@
 root of each filesystem into which I can place snapshots.
 You may create up to 20 snapshots per filesystem. Active snapshots
 are recorded in the superblock, so they persist across unmount
-and remount operations and across system reboots. When your
+and remount operations and across system reboots. When you
 are done with a snapshot, it can be removed with the `rm'
 command. Snapshots may be removed in any order, however you
 may not get back all the space contained in the snapshot as

==== //depot/projects/pmap/sys/vm/vm_zeroidle.c#4 (text+ko) ====

@@ -7,7 +7,7 @@
  *
  *	from: @(#)vm_machdep.c	7.3 (Berkeley) 5/13/91
  *	Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
- * $FreeBSD: src/sys/vm/vm_zeroidle.c,v 1.13 2002/07/08 23:12:37 peter Exp $
+ * $FreeBSD: src/sys/vm/vm_zeroidle.c,v 1.14 2002/07/12 20:17:06 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -30,11 +30,7 @@
 SYSCTL_INT(_vm_stats_misc, OID_AUTO,
 	cnt_prezero, CTLFLAG_RD, &cnt_prezero, 0, "");
 
-#ifdef SMP
-static int idlezero_enable = 0;
-#else
 static int idlezero_enable = 1;
-#endif
 SYSCTL_INT(_vm, OID_AUTO, idlezero_enable, CTLFLAG_RW, &idlezero_enable, 0, "");
 TUNABLE_INT("vm.idlezero_enable", &idlezero_enable);
 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




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