Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Oct 2004 05:49:58 GMT
From:      Julian Elischer <julian@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 62584 for review
Message-ID:  <200410030549.i935nwgY055168@repoman.freebsd.org>

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

Change 62584 by julian@julian_ref on 2004/10/03 05:49:38

	IFC@62582

Affected files ...

.. //depot/projects/nsched/sys/alpha/alpha/pmap.c#11 integrate
.. //depot/projects/nsched/sys/amd64/amd64/mp_machdep.c#8 integrate
.. //depot/projects/nsched/sys/amd64/amd64/mptable.c#5 integrate
.. //depot/projects/nsched/sys/amd64/amd64/pmap.c#23 integrate
.. //depot/projects/nsched/sys/amd64/include/pmap.h#12 integrate
.. //depot/projects/nsched/sys/arm/arm/fusu.S#2 integrate
.. //depot/projects/nsched/sys/arm/arm/locore.S#4 integrate
.. //depot/projects/nsched/sys/arm/arm/pmap.c#7 integrate
.. //depot/projects/nsched/sys/arm/arm/swtch.S#3 integrate
.. //depot/projects/nsched/sys/arm/conf/IQ31244#2 integrate
.. //depot/projects/nsched/sys/arm/include/endian.h#4 integrate
.. //depot/projects/nsched/sys/boot/alpha/common/help.alpha#2 integrate
.. //depot/projects/nsched/sys/boot/common/commands.c#2 integrate
.. //depot/projects/nsched/sys/boot/common/help.common#4 integrate
.. //depot/projects/nsched/sys/boot/common/loader.8#7 integrate
.. //depot/projects/nsched/sys/boot/forth/loader.4th.8#2 integrate
.. //depot/projects/nsched/sys/boot/forth/loader.conf#8 integrate
.. //depot/projects/nsched/sys/boot/forth/loader.conf.5#3 integrate
.. //depot/projects/nsched/sys/boot/i386/loader/help.i386#2 integrate
.. //depot/projects/nsched/sys/boot/ia64/ski/bootinfo.c#2 integrate
.. //depot/projects/nsched/sys/boot/pc98/loader/help.pc98#2 integrate
.. //depot/projects/nsched/sys/conf/files#27 integrate
.. //depot/projects/nsched/sys/conf/files.amd64#10 integrate
.. //depot/projects/nsched/sys/conf/majors#4 integrate
.. //depot/projects/nsched/sys/contrib/ipfilter/netinet/ip_fil.c#6 integrate
.. //depot/projects/nsched/sys/contrib/pf/net/pf.c#8 integrate
.. //depot/projects/nsched/sys/contrib/pf/net/pf_ioctl.c#10 integrate
.. //depot/projects/nsched/sys/contrib/pf/net/pfvar.h#6 integrate
.. //depot/projects/nsched/sys/dev/ata/ata-chipset.c#15 integrate
.. //depot/projects/nsched/sys/dev/ata/ata-disk.c#9 integrate
.. //depot/projects/nsched/sys/dev/em/if_em.c#7 integrate
.. //depot/projects/nsched/sys/dev/fdc/fdc_acpi.c#6 integrate
.. //depot/projects/nsched/sys/dev/musycc/musycc.c#3 integrate
.. //depot/projects/nsched/sys/dev/re/if_re.c#10 integrate
.. //depot/projects/nsched/sys/dev/si/si.c#9 integrate
.. //depot/projects/nsched/sys/dev/si/si.h#4 integrate
.. //depot/projects/nsched/sys/dev/si/sivar.h#2 integrate
.. //depot/projects/nsched/sys/dev/sound/pci/ich.c#6 integrate
.. //depot/projects/nsched/sys/dev/syscons/syscons.c#8 integrate
.. //depot/projects/nsched/sys/dev/usb/ucom.c#10 integrate
.. //depot/projects/nsched/sys/dev/usb/ucomvar.h#5 integrate
.. //depot/projects/nsched/sys/dev/usb/ugen.c#7 integrate
.. //depot/projects/nsched/sys/dev/usb/uplcom.c#7 integrate
.. //depot/projects/nsched/sys/dev/usb/usb_subr.c#7 integrate
.. //depot/projects/nsched/sys/fs/procfs/procfs_dbregs.c#3 integrate
.. //depot/projects/nsched/sys/fs/procfs/procfs_fpregs.c#3 integrate
.. //depot/projects/nsched/sys/fs/procfs/procfs_regs.c#3 integrate
.. //depot/projects/nsched/sys/fs/unionfs/union_vnops.c#4 integrate
.. //depot/projects/nsched/sys/geom/gate/g_gate.c#7 integrate
.. //depot/projects/nsched/sys/geom/geom_dev.c#6 integrate
.. //depot/projects/nsched/sys/geom/geom_io.c#8 integrate
.. //depot/projects/nsched/sys/geom/mirror/g_mirror.c#9 integrate
.. //depot/projects/nsched/sys/geom/mirror/g_mirror.h#3 integrate
.. //depot/projects/nsched/sys/geom/raid3/g_raid3.c#8 integrate
.. //depot/projects/nsched/sys/geom/raid3/g_raid3.h#3 integrate
.. //depot/projects/nsched/sys/geom/vinum/geom_vinum.c#8 integrate
.. //depot/projects/nsched/sys/geom/vinum/geom_vinum_init.c#4 integrate
.. //depot/projects/nsched/sys/geom/vinum/geom_vinum_list.c#2 integrate
.. //depot/projects/nsched/sys/geom/vinum/geom_vinum_plex.c#7 integrate
.. //depot/projects/nsched/sys/geom/vinum/geom_vinum_raid5.c#5 integrate
.. //depot/projects/nsched/sys/geom/vinum/geom_vinum_raid5.h#4 integrate
.. //depot/projects/nsched/sys/geom/vinum/geom_vinum_share.c#3 integrate
.. //depot/projects/nsched/sys/geom/vinum/geom_vinum_subr.c#7 integrate
.. //depot/projects/nsched/sys/geom/vinum/geom_vinum_var.h#4 integrate
.. //depot/projects/nsched/sys/gnu/ext2fs/ext2_extern.h#4 integrate
.. //depot/projects/nsched/sys/gnu/ext2fs/ext2_readwrite.c#3 integrate
.. //depot/projects/nsched/sys/gnu/ext2fs/ext2_vfsops.c#7 integrate
.. //depot/projects/nsched/sys/gnu/ext2fs/ext2_vnops.c#5 integrate
.. //depot/projects/nsched/sys/i386/i386/autoconf.c#5 integrate
.. //depot/projects/nsched/sys/i386/i386/pmap.c#25 integrate
.. //depot/projects/nsched/sys/i386/include/pmap.h#8 integrate
.. //depot/projects/nsched/sys/i386/linux/linux_ptrace.c#3 integrate
.. //depot/projects/nsched/sys/ia64/ia64/pmap.c#14 integrate
.. //depot/projects/nsched/sys/isa/psm.c#8 integrate
.. //depot/projects/nsched/sys/kern/kern_conf.c#11 integrate
.. //depot/projects/nsched/sys/kern/kern_fork.c#15 integrate
.. //depot/projects/nsched/sys/kern/kern_malloc.c#6 integrate
.. //depot/projects/nsched/sys/kern/kern_sig.c#11 integrate
.. //depot/projects/nsched/sys/kern/subr_unit.c#1 branch
.. //depot/projects/nsched/sys/kern/tty.c#11 integrate
.. //depot/projects/nsched/sys/kern/uipc_mbuf.c#7 integrate
.. //depot/projects/nsched/sys/kern/uipc_syscalls.c#12 integrate
.. //depot/projects/nsched/sys/kern/vfs_aio.c#7 integrate
.. //depot/projects/nsched/sys/kern/vfs_cluster.c#4 integrate
.. //depot/projects/nsched/sys/kern/vfs_subr.c#14 integrate
.. //depot/projects/nsched/sys/libkern/arm/divsi3.S#2 integrate
.. //depot/projects/nsched/sys/modules/mem/Makefile#2 integrate
.. //depot/projects/nsched/sys/net/bridge.c#8 integrate
.. //depot/projects/nsched/sys/net/pfil.c#3 integrate
.. //depot/projects/nsched/sys/net/pfil.h#3 integrate
.. //depot/projects/nsched/sys/netinet/in_pcb.c#7 integrate
.. //depot/projects/nsched/sys/netinet/ip_divert.c#9 integrate
.. //depot/projects/nsched/sys/netinet/ip_fastfwd.c#7 integrate
.. //depot/projects/nsched/sys/netinet/ip_fw.h#5 integrate
.. //depot/projects/nsched/sys/netinet/ip_fw2.c#12 integrate
.. //depot/projects/nsched/sys/netinet/ip_fw_pfil.c#4 integrate
.. //depot/projects/nsched/sys/netinet/ip_input.c#12 integrate
.. //depot/projects/nsched/sys/netinet/ip_output.c#12 integrate
.. //depot/projects/nsched/sys/netinet6/ip6_forward.c#3 integrate
.. //depot/projects/nsched/sys/netinet6/ip6_input.c#8 integrate
.. //depot/projects/nsched/sys/netinet6/ip6_output.c#6 integrate
.. //depot/projects/nsched/sys/netinet6/nd6.c#5 integrate
.. //depot/projects/nsched/sys/netipsec/ipsec.c#2 integrate
.. //depot/projects/nsched/sys/netipsec/key.c#6 integrate
.. //depot/projects/nsched/sys/netipsec/key.h#2 integrate
.. //depot/projects/nsched/sys/netkey/key.c#4 integrate
.. //depot/projects/nsched/sys/nfs4client/nfs4_vnops.c#6 integrate
.. //depot/projects/nsched/sys/nfsclient/nfs.h#6 integrate
.. //depot/projects/nsched/sys/nfsclient/nfs_bio.c#8 integrate
.. //depot/projects/nsched/sys/nfsclient/nfs_subs.c#6 integrate
.. //depot/projects/nsched/sys/nfsclient/nfs_vnops.c#8 integrate
.. //depot/projects/nsched/sys/nfsclient/nfsnode.h#4 integrate
.. //depot/projects/nsched/sys/pc98/pc98/sio_cbus.c#2 integrate
.. //depot/projects/nsched/sys/pci/if_dc.c#9 integrate
.. //depot/projects/nsched/sys/pci/if_rlreg.h#7 integrate
.. //depot/projects/nsched/sys/powerpc/powermac/uninorthvar.h#2 integrate
.. //depot/projects/nsched/sys/sparc64/include/smp.h#2 integrate
.. //depot/projects/nsched/sys/sparc64/sparc64/counter.c#3 integrate
.. //depot/projects/nsched/sys/sparc64/sparc64/machdep.c#7 integrate
.. //depot/projects/nsched/sys/sparc64/sparc64/mp_machdep.c#3 integrate
.. //depot/projects/nsched/sys/sparc64/sparc64/rwindow.c#2 integrate
.. //depot/projects/nsched/sys/sparc64/sparc64/vm_machdep.c#6 integrate
.. //depot/projects/nsched/sys/sys/buf.h#5 integrate
.. //depot/projects/nsched/sys/sys/conf.h#12 integrate
.. //depot/projects/nsched/sys/sys/mbuf.h#10 integrate
.. //depot/projects/nsched/sys/sys/param.h#14 integrate
.. //depot/projects/nsched/sys/sys/proc.h#36 integrate
.. //depot/projects/nsched/sys/sys/systm.h#9 integrate
.. //depot/projects/nsched/sys/sys/tty.h#10 integrate
.. //depot/projects/nsched/sys/ufs/ffs/ffs_extern.h#4 integrate
.. //depot/projects/nsched/sys/ufs/ffs/ffs_vfsops.c#9 integrate
.. //depot/projects/nsched/sys/ufs/ffs/ffs_vnops.c#6 integrate
.. //depot/projects/nsched/sys/ufs/ufs/ufs_extern.h#4 integrate
.. //depot/projects/nsched/sys/ufs/ufs/ufs_vnops.c#5 integrate

Differences ...

==== //depot/projects/nsched/sys/alpha/alpha/pmap.c#11 (text+ko) ====

@@ -148,7 +148,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.171 2004/09/19 21:20:01 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.173 2004/10/03 00:16:42 alc Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1686,7 +1686,7 @@
 	}
 
 	origpte = *pte;
-	pa = VM_PAGE_TO_PHYS(m) & ~PAGE_MASK;
+	pa = VM_PAGE_TO_PHYS(m);
 	managed = 0;
 	opa = pmap_pte_pa(pte);
 
@@ -1717,11 +1717,8 @@
 		 */
 		if (origpte & PG_MANAGED) {
 			if ((origpte & PG_FOW) != PG_FOW
-			    && pmap_track_modified(va)) {
-				vm_page_t om;
-				om = PHYS_TO_VM_PAGE(opa);
-				vm_page_dirty(om);
-			}
+			    && pmap_track_modified(va))
+				vm_page_dirty(m);
 		}
 
 		managed = origpte & PG_MANAGED;

==== //depot/projects/nsched/sys/amd64/amd64/mp_machdep.c#8 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.246 2004/09/01 06:42:01 julian Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.247 2004/09/29 01:59:10 peter Exp $");
 
 #include "opt_cpu.h"
 #include "opt_kstack_pages.h"
@@ -539,12 +539,14 @@
 	u_int32_t mpbioswarmvec;
 	int apic_id, cpu, i;
 	u_int64_t *pt4, *pt3, *pt2;
+	vm_offset_t va = boot_address + KERNBASE;
 
 	mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN);
 
 	/* install the AP 1st level boot code */
-	pmap_kenter(boot_address + KERNBASE, boot_address);
-	bcopy(mptramp_start, (void *)((uintptr_t)boot_address + KERNBASE), bootMP_size);
+	pmap_kenter(va, boot_address);
+	pmap_invalidate_page(kernel_pmap, va);
+	bcopy(mptramp_start, (void *)va, bootMP_size);
 
 	/* Locate the page tables, they'll be below the trampoline */
 	pt4 = (u_int64_t *)(uintptr_t)(mptramp_pagetables + KERNBASE);

==== //depot/projects/nsched/sys/amd64/amd64/mptable.c#5 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.232 2004/07/08 01:42:49 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.233 2004/09/29 01:58:24 peter Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -928,7 +928,9 @@
 	if (args->vector == vector)
 		return;
 	KASSERT(args->vector == -1,
-	    ("Multiple entries for PCI IRQ %d", args->vector));
+	    ("Multiple IRQs for PCI interrupt %d.%d.INT%c: %d and %d\n",
+	    args->bus, args->irq >> 2, 'A' + (args->irq & 0x3), args->vector,
+	    vector));
 	args->vector = vector;
 }
 

==== //depot/projects/nsched/sys/amd64/amd64/pmap.c#23 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.502 2004/09/22 05:01:48 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.506 2004/10/03 00:16:42 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -110,6 +110,7 @@
 #include <sys/systm.h>
 #include <sys/kernel.h>
 #include <sys/lock.h>
+#include <sys/malloc.h>
 #include <sys/mman.h>
 #include <sys/msgbuf.h>
 #include <sys/mutex.h>
@@ -159,7 +160,6 @@
 #endif
 
 struct pmap kernel_pmap_store;
-LIST_HEAD(pmaplist, pmap);
 
 vm_paddr_t avail_start;		/* PA of first available physical page */
 vm_paddr_t avail_end;		/* PA of last available physical page */
@@ -212,9 +212,9 @@
 		vm_offset_t va, pd_entry_t ptepde);
 static void pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t m);
 
-static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va);
+static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags);
 
-static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex);
+static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags);
 static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m);
 static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t);
 static vm_offset_t pmap_kmem_choose(vm_offset_t addr);
@@ -1101,22 +1101,26 @@
  * race conditions.
  */
 static vm_page_t
-_pmap_allocpte(pmap, ptepindex)
-	pmap_t	pmap;
-	vm_pindex_t ptepindex;
+_pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex, int flags)
 {
 	vm_page_t m, pdppg, pdpg;
 
+	KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT ||
+	    (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK,
+	    ("_pmap_allocpte: flags is neither M_NOWAIT nor M_WAITOK"));
+
 	/*
 	 * Allocate a page table page.
 	 */
 	if ((m = vm_page_alloc(NULL, ptepindex, VM_ALLOC_NOOBJ |
 	    VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) {
-		PMAP_UNLOCK(pmap);
-		vm_page_unlock_queues();
-		VM_WAIT;
-		vm_page_lock_queues();
-		PMAP_LOCK(pmap);
+		if (flags & M_WAITOK) {
+			PMAP_UNLOCK(pmap);
+			vm_page_unlock_queues();
+			VM_WAIT;
+			vm_page_lock_queues();
+			PMAP_LOCK(pmap);
+		}
 
 		/*
 		 * Indicate the need to retry.  While waiting, the page table
@@ -1156,7 +1160,8 @@
 		pml4 = &pmap->pm_pml4[pml4index];
 		if ((*pml4 & PG_V) == 0) {
 			/* Have to allocate a new pdp, recurse */
-			if (_pmap_allocpte(pmap, NUPDE + NUPDPE + pml4index) == NULL) {
+			if (_pmap_allocpte(pmap, NUPDE + NUPDPE + pml4index,
+			    flags) == NULL) {
 				--m->wire_count;
 				vm_page_free(m);
 				return (NULL);
@@ -1187,7 +1192,8 @@
 		pml4 = &pmap->pm_pml4[pml4index];
 		if ((*pml4 & PG_V) == 0) {
 			/* Have to allocate a new pd, recurse */
-			if (_pmap_allocpte(pmap, NUPDE + pdpindex) == NULL) {
+			if (_pmap_allocpte(pmap, NUPDE + pdpindex,
+			    flags) == NULL) {
 				--m->wire_count;
 				vm_page_free(m);
 				return (NULL);
@@ -1199,7 +1205,8 @@
 			pdp = &pdp[pdpindex & ((1ul << NPDPEPGSHIFT) - 1)];
 			if ((*pdp & PG_V) == 0) {
 				/* Have to allocate a new pd, recurse */
-				if (_pmap_allocpte(pmap, NUPDE + pdpindex) == NULL) {
+				if (_pmap_allocpte(pmap, NUPDE + pdpindex,
+				    flags) == NULL) {
 					--m->wire_count;
 					vm_page_free(m);
 					return (NULL);
@@ -1221,12 +1228,16 @@
 }
 
 static vm_page_t
-pmap_allocpte(pmap_t pmap, vm_offset_t va)
+pmap_allocpte(pmap_t pmap, vm_offset_t va, int flags)
 {
 	vm_pindex_t ptepindex;
 	pd_entry_t *pd;
 	vm_page_t m;
 
+	KASSERT((flags & (M_NOWAIT | M_WAITOK)) == M_NOWAIT ||
+	    (flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK,
+	    ("pmap_allocpte: flags is neither M_NOWAIT nor M_WAITOK"));
+
 	/*
 	 * Calculate pagetable page index
 	 */
@@ -1259,8 +1270,8 @@
 		 * Here if the pte page isn't mapped, or if it has been
 		 * deallocated.
 		 */
-		m = _pmap_allocpte(pmap, ptepindex);
-		if (m == NULL)
+		m = _pmap_allocpte(pmap, ptepindex, flags);
+		if (m == NULL && (flags & M_WAITOK))
 			goto retry;
 	}
 	return (m);
@@ -1848,7 +1859,7 @@
 	 * resident, we are creating it here.
 	 */
 	if (va < VM_MAXUSER_ADDRESS) {
-		mpte = pmap_allocpte(pmap, va);
+		mpte = pmap_allocpte(pmap, va, M_WAITOK);
 	}
 #if 0 && defined(PMAP_DIAGNOSTIC)
 	else {
@@ -1869,7 +1880,7 @@
 	if (pte == NULL)
 		panic("pmap_enter: invalid page directory va=%#lx\n", va);
 
-	pa = VM_PAGE_TO_PHYS(m) & PG_FRAME;
+	pa = VM_PAGE_TO_PHYS(m);
 	origpte = *pte;
 	opa = origpte & PG_FRAME;
 
@@ -1910,11 +1921,8 @@
 		 * so we go ahead and sense modify status.
 		 */
 		if (origpte & PG_MANAGED) {
-			if ((origpte & PG_M) && pmap_track_modified(va)) {
-				vm_page_t om;
-				om = PHYS_TO_VM_PAGE(opa);
-				vm_page_dirty(om);
-			}
+			if ((origpte & PG_M) && pmap_track_modified(va))
+				vm_page_dirty(m);
 			pa |= PG_MANAGED;
 		}
 		goto validate;
@@ -2029,7 +2037,8 @@
 				mpte = PHYS_TO_VM_PAGE(*ptepa & PG_FRAME);
 				mpte->wire_count++;
 			} else {
-				mpte = _pmap_allocpte(pmap, ptepindex);
+				mpte = _pmap_allocpte(pmap, ptepindex,
+				    M_WAITOK);
 				if (mpte == NULL)
 					goto retry;
 			}
@@ -2224,7 +2233,13 @@
 		return;
 
 	vm_page_lock_queues();
-	PMAP_LOCK(dst_pmap);
+	if (dst_pmap < src_pmap) {
+		PMAP_LOCK(dst_pmap);
+		PMAP_LOCK(src_pmap);
+	} else {
+		PMAP_LOCK(src_pmap);
+		PMAP_LOCK(dst_pmap);
+	}
 	for (addr = src_addr; addr < end_addr; addr = va_next) {
 		pt_entry_t *src_pte, *dst_pte;
 		vm_page_t dstmpte, srcmpte;
@@ -2303,9 +2318,12 @@
 				 * pte still being around...  allocpte can
 				 * block.
 				 */
-				dstmpte = pmap_allocpte(dst_pmap, addr);
+				dstmpte = pmap_allocpte(dst_pmap, addr,
+				    M_NOWAIT);
+				if (dstmpte == NULL)
+					break;
 				dst_pte = pmap_pte(dst_pmap, addr);
-				if ((*dst_pte == 0) && (ptetemp = *src_pte)) {
+				if (*dst_pte == 0) {
 					/*
 					 * Clear the modified and
 					 * accessed (referenced) bits
@@ -2325,6 +2343,7 @@
 		}
 	}
 	vm_page_unlock_queues();
+	PMAP_UNLOCK(src_pmap);
 	PMAP_UNLOCK(dst_pmap);
 }	
 

==== //depot/projects/nsched/sys/amd64/include/pmap.h#12 (text+ko) ====

@@ -39,7 +39,7 @@
  *
  *	from: hp300: @(#)pmap.h	7.2 (Berkeley) 12/16/90
  *	from: @(#)pmap.h	7.4 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.123 2004/09/11 01:31:26 scottl Exp $
+ * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.124 2004/09/29 19:20:39 alc Exp $
  */
 
 #ifndef _MACHINE_PMAP_H_
@@ -240,7 +240,7 @@
 				mtx_assert(&(pmap)->pm_mtx, (type))
 #define	PMAP_LOCK_DESTROY(pmap)	mtx_destroy(&(pmap)->pm_mtx)
 #define	PMAP_LOCK_INIT(pmap)	mtx_init(&(pmap)->pm_mtx, "pmap", \
-				    NULL, MTX_DEF)
+				    NULL, MTX_DEF | MTX_DUPOK)
 #define	PMAP_LOCKED(pmap)	mtx_owned(&(pmap)->pm_mtx)
 #define	PMAP_MTX(pmap)		(&(pmap)->pm_mtx)
 #define	PMAP_TRYLOCK(pmap)	mtx_trylock(&(pmap)->pm_mtx)

==== //depot/projects/nsched/sys/arm/arm/fusu.S#2 (text+ko) ====

@@ -37,7 +37,7 @@
 #include <machine/asmacros.h>
 #include <machine/armreg.h>
 #include "assym.s"
-__FBSDID("$FreeBSD: src/sys/arm/arm/fusu.S,v 1.1 2004/05/14 11:46:42 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/fusu.S,v 1.2 2004/09/28 14:39:26 cognet Exp $");
 
 #ifdef MULTIPROCESSOR
 .Lcpu_info:
@@ -52,6 +52,7 @@
  * Fetch an int from the user's address space.
  */
 
+ENTRY(fuword32)
 ENTRY(fuword)
 #ifdef MULTIPROCESSOR
 	/* XXX Probably not appropriate for non-Hydra SMPs */
@@ -81,8 +82,6 @@
 	mov	r0, r3
 	mov	pc, lr
 
-ENTRY(fuword32)
-	bl	_C_LABEL(fuword)
 /*
  * fusword(caddr_t uaddr);
  * Fetch a short from the user's address space.

==== //depot/projects/nsched/sys/arm/arm/locore.S#4 (text+ko) ====

@@ -37,7 +37,7 @@
 #include <machine/asm.h>
 #include <machine/armreg.h>
 #include <machine/pte.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.3 2004/09/23 21:49:10 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.4 2004/09/28 14:37:08 cognet Exp $");
 
 /* What size should this really be ? It is only used by init_arm() */
 #define INIT_ARM_STACK_SIZE	2048
@@ -162,10 +162,6 @@
 
 	/* init arm will return the new stack pointer. */
 	mov	sp, r0
-	mov	fp, #0x00000000		/* trace back starts here */
-	mov	ip, sp
-	stmfd	sp!, {fp, ip, lr, pc}
-	sub	fp, ip, #4
 
 	bl	_C_LABEL(mi_startup)		/* call mi_startup()! */
 

==== //depot/projects/nsched/sys/arm/arm/pmap.c#7 (text+ko) ====

@@ -145,7 +145,7 @@
 /* Include header files */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.13 2004/09/23 21:54:24 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.14 2004/09/28 14:38:14 cognet Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
@@ -3387,6 +3387,7 @@
 
 		pmap_vac_me_harder(m, pmap, va);
 	}
+	pmap_dcache_wbinv_all(pmap) /* XXX: Shouldn't be needed. */;
 	vm_page_unlock_queues();
 }
 

==== //depot/projects/nsched/sys/arm/arm/swtch.S#3 (text+ko) ====

@@ -81,7 +81,7 @@
 #include <machine/asm.h>
 #include <machine/asmacros.h>
 #include <machine/armreg.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.2 2004/09/23 22:20:59 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/swtch.S,v 1.3 2004/09/28 14:37:39 cognet Exp $");
 
 #include "assym.s"
 
@@ -133,8 +133,6 @@
 	ldr	r0, .Lcurthread
 	mov	r5, r1
 
-	mov	r6, r2
-
 	/*
 	 * r4 = lwp
 	 * r5 = lwp0
@@ -347,7 +345,6 @@
 	ldr	r1, [r9, #(PCB_DACR)]		/* r1 = new DACR */
 
 	teq	r10, r11			/* Same L1? */
-	ldr	r5, [r5]
 	cmpeq	r0, r1				/* Same DACR? */
 	beq	.Lcs_context_switched		/* yes! */
 	ldr	r3, .Lblock_userspace_access

==== //depot/projects/nsched/sys/arm/conf/IQ31244#2 (text+ko) ====

@@ -15,7 +15,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first 
 # in NOTES.
 #
-# $FreeBSD: src/sys/arm/conf/IQ31244,v 1.1 2004/09/23 22:55:00 cognet Exp $
+# $FreeBSD: src/sys/arm/conf/IQ31244,v 1.2 2004/10/01 16:51:37 cognet Exp $
 
 machine		arm
 ident		IQ31244
@@ -83,7 +83,6 @@
 # Debugging for use in -current
 options		KDB
 options 	DDB			#Enable the kernel debugger
-options		MALLOC_PROFILE
 #options 	INVARIANTS		#Enable calls of extra sanity checking
 #options 	INVARIANT_SUPPORT	#Extra sanity checks of internal structures, required by INVARIANTS
 #options 	WITNESS			#Enable checks to detect deadlocks and cycles

==== //depot/projects/nsched/sys/arm/include/endian.h#4 (text+ko) ====

@@ -27,7 +27,7 @@
  *
  *	@(#)endian.h	8.1 (Berkeley) 6/10/93
  * $NetBSD: endian.h,v 1.7 1999/08/21 05:53:51 simonb Exp $
- * $FreeBSD: src/sys/arm/include/endian.h,v 1.4 2004/08/02 12:24:18 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/endian.h,v 1.5 2004/10/01 16:55:59 cognet Exp $
  */
 
 #ifndef _ENDIAN_H_
@@ -70,7 +70,7 @@
 }
 
 static __inline __uint32_t
-__bswap32(__uint32_t v)
+__bswap32_var(__uint32_t v)
 {
 	__uint32_t t1;
 
@@ -83,7 +83,7 @@
  }
 
 static __inline __uint16_t
-__bswap16(__uint32_t v)
+__bswap16_var(__uint32_t v)
 {
 	__asm __volatile(
 	    "mov    %0, %1, ror #8\n"
@@ -94,4 +94,32 @@
 	
 	return (v);
 }		
+
+#ifdef __OPTIMIZE__
+
+#define __bswap32_constant(x)	\
+    ((((x) & 0xff000000U) >> 24) |	\
+     (((x) & 0x00ff0000U) >>  8) |	\
+     (((x) & 0x0000ff00U) <<  8) |	\
+     (((x) & 0x000000ffU) << 24))
+
+#define __bswap16_constant(x)	\
+    ((((x) & 0xff00) >> 8) |		\
+     (((x) & 0x00ff) << 8))
+
+#define __bswap16(x)	\
+    (__builtin_constant_p(x) ?	\
+     __bswap16_constant(x) : \
+     __bswap16_var(x))
+
+#define __bswap32(x)	\
+    (__builtin_constant_p(x) ? 	\
+     __bswap32_constant(x) : \
+     __bswap32_var(x))
+
+#else
+#define __bswap16(x)	__bswap16_var(x)
+#define __bswap32(x)	__bswap32_var(x)
+
+#endif /* __OPTIMIZE__ */
 #endif /* !_ENDIAN_H_ */

==== //depot/projects/nsched/sys/boot/alpha/common/help.alpha#2 (text+ko) ====

@@ -1,0 +1,25 @@
+$FreeBSD: src/sys/boot/alpha/common/help.alpha,v 1.2 2004/10/01 19:44:42 ru Exp $
+
+################################################################################
+# Treboot DReboot the system
+
+	reboot
+
+	Causes the system to immediately reboot.
+
+################################################################################
+# Thalt DHalt the system
+
+	halt
+
+	Causes the system to halt.
+
+################################################################################
+# Theap DDisplay memory management statistics
+
+	heap
+
+	Requests debugging output from the heap manager.  For debugging use
+	only.
+
+################################################################################

==== //depot/projects/nsched/sys/boot/common/commands.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/common/commands.c,v 1.19 2003/08/25 23:30:41 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/common/commands.c,v 1.20 2004/09/29 13:43:55 ru Exp $");
 
 #include <stand.h>
 #include <string.h>
@@ -100,7 +100,7 @@
     }
 }
 
-static void
+static int
 help_emitsummary(char *topic, char *subtopic, char *desc)
 {
     int		i;
@@ -119,7 +119,7 @@
 	} while (i++ < 30);
 	pager_output(desc);
     }
-    pager_output("\n");
+    return (pager_output("\n"));
 }
 
 	    
@@ -162,7 +162,8 @@
     while(help_getnext(hfd, &t, &s, &d)) {
 
 	if (doindex) {		/* dink around formatting */
-	    help_emitsummary(t, s, d);
+	    if (help_emitsummary(t, s, d))
+		break;
 
 	} else if (strcmp(topic, t)) {
 	    /* topic mismatch */
@@ -183,7 +184,8 @@
 		}
 	    } else if ((subtopic == NULL) && (s != NULL)) {
 		/* topic match, list subtopics */
-		help_emitsummary(t, s, d);
+		if (help_emitsummary(t, s, d))
+		    break;
 	    }
 	}
 	free(t);

==== //depot/projects/nsched/sys/boot/common/help.common#4 (text+ko) ====

@@ -2,7 +2,7 @@
 # Thelp DDisplay command help
 
 	help [topic [subtopic]]
-	?
+	help index
 
 	The help command displays help on commands and their usage.
 
@@ -13,10 +13,12 @@
 	Some commands may not be available.  Use the '?' command to list
 	most available commands.
 
-	If needed, disable the use of ACPI with:
+################################################################################
+# T? DList available commands
+
+	?
 
-	unset acpi_load
-	set hint.acpi.0.disabled="1"
+	Lists all available commands.
 
 ################################################################################
 # Tautoboot DBoot after a delay
@@ -38,6 +40,13 @@
 	kernel.
 
 ################################################################################
+# Tbcachestat DGet disk block cache stats
+
+	bcachestat
+
+	Displays statistics about disk cache usage.  For depuration only.
+
+################################################################################
 # Techo DEcho arguments
 
 	echo [-n] [<message>]
@@ -144,27 +153,52 @@
 	when the kernel is booted.
 
 ################################################################################
+# Tset Sboot_cdrom DMount root file system from CD-ROM
+
+	set boot_cdrom
+
+	Instructs the kernel to try to mount the root file system from CD-ROM.
+
+################################################################################
 # Tset Sboot_ddb DDrop to the kernel debugger (DDB)
 
 	set boot_ddb
 
 	Instructs the kernel to start in the DDB debugger, rather than
-	proceeding to initialise when booted.
+	proceeding to initialize when booted.
 
 ################################################################################
-# Tset Sboot_gdb DSelect gdb-remote mode
+# Tset Sboot_gdb DSelect gdb-remote mode for the kernel debugger
 
 	set boot_gdb
 
 	Selects gdb-remote mode for the kernel debugger by default.
 
 ################################################################################
+# Tset Sboot_multicons DUse multiple consoles
+
+	set boot_multicons
+
+	Enables multiple console support in the kernel early on boot.
+	In a running system, console configuration can be manipulated
+	by the conscontrol(8) utility.
+
+################################################################################
+# Tset Sboot_serial DUse serial console
+
+	set boot_serial
+
+	Force the use of a serial console even when an internal console
+	is present.
+
+################################################################################
 # Tset Sboot_single DStart system in single-user mode
 
 	set boot_single
 
-	Prevents the kernel from initiating a multi-user startup, single-user
-	mode will be entered when the kernel has finished device probes.
+	Prevents the kernel from initiating a multi-user startup; instead,
+	a single-user mode will be entered when the kernel has finished
+	device probes.
 
 ################################################################################
 # Tset Sboot_verbose DVerbose boot messages
@@ -217,7 +251,7 @@
 	Variable substitution is performed on the prompt.  The default 
 	prompt can be set with:
 
-		set prompt=\$currdev>
+		set prompt=\${interpret}
 
 ################################################################################
 # Tset Srootdev DSet the root filesystem

==== //depot/projects/nsched/sys/boot/common/loader.8#7 (text+ko) ====

@@ -22,9 +22,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.66 2004/08/18 09:39:24 maxim Exp $
+.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.74 2004/10/01 00:15:13 ru Exp $
 .\"
-.Dd August 18, 2004
+.Dd October 1, 2004
 .Dt LOADER 8
 .Os
 .Sh NAME
@@ -131,7 +131,7 @@
 The builtin commands available are:
 .Pp
 .Bl -tag -width Ds -compact
-.It Ic autoboot Op Ar seconds
+.It Ic autoboot Op Ar seconds Op Ar prompt
 Proceeds to bootstrap the system after a number of seconds, if not
 interrupted by the user.
 Displays a countdown prompt
@@ -269,9 +269,7 @@
 from the environment.
 .Pp
 .It Ic \&?
-Same as
-.Dq help index .
-.Pp
+Lists available commands.
 .El
 .Ss BUILTIN ENVIRONMENT VARIABLES
 The
@@ -334,24 +332,37 @@
 .It Va boot_askname
 Instructs the kernel to prompt the user for the name of the root device
 when the kernel is booted.
+.It Va boot_cdrom
+Instructs the kernel to try to mount the root file system from CD-ROM.
 .It Va boot_ddb
 Instructs the kernel to start in the DDB debugger, rather than
 proceeding to initialize when booted.
 .It Va boot_gdb
 Selects gdb-remote mode for the kernel debugger by default.
+.It Va boot_multicons
+Enables multiple console support in the kernel early on boot.
+In a running system, console configuration can be manipulated
+by the
+.Xr conscontrol 8
+utility.
+.It Va boot_serial
+Force the use of a serial console even when an internal console
+is present.
 .It Va boot_single
-Prevents the kernel from initiating a multi-user startup; instead single-user
-mode will be entered when the kernel has finished device probing.
+Prevents the kernel from initiating a multi-user startup; instead,
+a single-user mode will be entered when the kernel has finished
+device probing.
 .It Va boot_userconfig
 Requests that the kernel's interactive device configuration program
 be run when the kernel is booted.
+Currently a no-op.
 .It Va boot_verbose
 Setting this variable causes extra debugging information to be printed
 by the kernel during the boot phase.
 .It Va bootfile
 List of semicolon-separated search path for bootable kernels.
 The default is
-.Dq Li kernel;kernel.old .
+.Dq Li kernel .
 .It Va console
 Defines the current console.
 .It Va currdev
@@ -365,7 +376,7 @@
 .Dq Li /sbin/init:/sbin/oinit:/sbin/init.bak:/stand/sysinstall .
 .It Va interpret
 Has the value
-.Dq Li ok
+.Dq Li OK
 if the Forth's current state is interpreting.
 .It Va LINES
 Define the number of lines on the screen, to be used by the pager.
@@ -384,7 +395,11 @@
 .Nm Ns 's
 prompt.
 Defaults to
-.Dq Li "${currdev}>" .
+.Dq Li "${interpret}" .
+If variable
+.Va prompt
+is unset, the default prompt is
+.Ql > .
 .It Va root_disk_unit
 If the code which detects the disk unit number for the root disk is
 confused, e.g.\& by a mix of SCSI and IDE disks, or IDE disks with
@@ -398,13 +413,6 @@
 This can be overridden by setting
 .Va rootdev
 explicitly.
-.It Va dumpdev
-The name of a device where the kernel can save a crash dump in case
-of a panic.
-This automatically sets the
-.Va kern.dumpdev
-.Xr sysctl 3
-MIB variable.
 .El
 .Pp
 Other variables are used to override kernel tunable parameters.
@@ -771,18 +779,12 @@
 .Pp
 .Dl boot -s
 .Pp
-Load kernel's user configuration file.
+Load the kernel, a splash screen, and then autoboot in five seconds.
 Notice that a kernel must be loaded before any other
 .Ic load
 command is attempted.
 .Bd -literal -offset indent
 load kernel
-load -t userconfig_script /boot/kernel.conf
-.Ed
-.Pp
-Load the kernel, a splash screen, and then autoboot in five seconds.
-.Bd -literal -offset indent
-load kernel
 load splash_bmp
 load -t splash_image_data /boot/chuckrulez.bmp
 autoboot 5

==== //depot/projects/nsched/sys/boot/forth/loader.4th.8#2 (text+ko) ====

@@ -22,9 +22,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/sys/boot/forth/loader.4th.8,v 1.14 2002/08/13 15:09:33 ru Exp $
+.\" $FreeBSD: src/sys/boot/forth/loader.4th.8,v 1.15 2004/09/30 21:48:51 ru Exp $
 .\"
-.Dd April 25, 1999
+.Dd September 30, 2004
 .Dt LOADER.4TH 8
 .Os
 .Sh NAME
@@ -183,7 +183,7 @@
 Load a different kernel with the standard configuration:
 .Pp
 .Bd -literal -offset indent -compact
-set kernel="/boot/kernel.old/kernel"
+set kernel="kernel.old"
 unload
 boot-conf
 .Ed

==== //depot/projects/nsched/sys/boot/forth/loader.conf#8 (text+ko) ====

@@ -6,7 +6,7 @@
 #
 # All arguments must be in double quotes.
 #
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.86 2004/09/24 09:33:48 pjd Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.90 2004/09/30 20:02:07 ru Exp $

>>> TRUNCATED FOR MAIL (1000 lines) <<<



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