PERFORCE change 62584 for review
Julian Elischer
julian at FreeBSD.org
Sat Oct 2 22:50:00 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=62584
Change 62584 by julian at julian_ref on 2004/10/03 05:49:38
IFC at 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) <<<
More information about the p4-projects
mailing list