From owner-p4-projects@FreeBSD.ORG Sun Oct 3 05:50:00 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BA2A116A4D0; Sun, 3 Oct 2004 05:49:59 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 78EF516A4CE for ; Sun, 3 Oct 2004 05:49:59 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5057E43D39 for ; Sun, 3 Oct 2004 05:49:59 +0000 (GMT) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i935nxEB055171 for ; Sun, 3 Oct 2004 05:49:59 GMT (envelope-from julian@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i935nwgY055168 for perforce@freebsd.org; Sun, 3 Oct 2004 05:49:58 GMT (envelope-from julian@freebsd.org) Date: Sun, 3 Oct 2004 05:49:58 GMT Message-Id: <200410030549.i935nwgY055168@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer To: Perforce Change Reviews Subject: PERFORCE change 62584 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Oct 2004 05:50:00 -0000 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 -__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 #include @@ -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 -__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 -__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 #include @@ -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 -__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 #include #include +#include #include #include #include @@ -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 #include #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 #include #include -__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 -__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 #include #include @@ -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 #include #include -__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 -__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 #include @@ -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] [] @@ -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) <<<