diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2001-11-27 05:27:13 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2001-11-27 05:27:13 +0000 |
commit | 8a1845e49f56720cbfccd4c7f5f80ba5b980fdf4 (patch) | |
tree | d4a522dc41cdc79ba48fe761e94663b795da8cc0 /sys/arch | |
parent | 0d68e9b5af14f4bfa04d22dbebab5972ac647b26 (diff) |
Merge in the unified buffer cache code as found in NetBSD 2001/03/10. The
code is written mostly by Chuck Silvers <chuq@chuq.com>/<chs@netbsd.org>.
Tested for the past few weeks by many developers, should be in a pretty stable
state, but will require optimizations and additional cleanups.
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/alpha/alpha/pmap.c | 6 | ||||
-rw-r--r-- | sys/arch/i386/i386/vm_machdep.c | 7 |
2 files changed, 6 insertions, 7 deletions
diff --git a/sys/arch/alpha/alpha/pmap.c b/sys/arch/alpha/alpha/pmap.c index 9ff390da8c2..1d50a35d446 100644 --- a/sys/arch/alpha/alpha/pmap.c +++ b/sys/arch/alpha/alpha/pmap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pmap.c,v 1.23 2001/11/09 15:31:11 art Exp $ */ +/* $OpenBSD: pmap.c,v 1.24 2001/11/27 05:27:11 art Exp $ */ /* $NetBSD: pmap.c,v 1.154 2000/12/07 22:18:55 thorpej Exp $ */ /*- @@ -804,8 +804,8 @@ pmap_bootstrap(paddr_t ptaddr, u_int maxasn, u_long ncpuids) /* * Figure out how many PTE's are necessary to map the kernel. */ - lev3mapsize = (VM_PHYS_SIZE + - nbuf * MAXBSIZE + + PAGER_MAP_SIZE + 16 * NCARGS) / NBPG + + lev3mapsize = (VM_PHYS_SIZE + ubc_nwins * ubc_winsize + + nbuf * MAXBSIZE + 16 * NCARGS + PAGER_MAP_SIZE) / NBPG + (maxproc * UPAGES) + NKMEMCLUSTERS; #ifdef SYSVSHM diff --git a/sys/arch/i386/i386/vm_machdep.c b/sys/arch/i386/i386/vm_machdep.c index 516dea6ebea..7de82391532 100644 --- a/sys/arch/i386/i386/vm_machdep.c +++ b/sys/arch/i386/i386/vm_machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vm_machdep.c,v 1.32 2001/11/06 19:53:14 miod Exp $ */ +/* $OpenBSD: vm_machdep.c,v 1.33 2001/11/27 05:27:11 art Exp $ */ /* $NetBSD: vm_machdep.c,v 1.61 1996/05/03 19:42:35 christos Exp $ */ /*- @@ -371,9 +371,7 @@ vmapbuf(bp, len) while (len) { pmap_extract(vm_map_pmap(&bp->b_proc->p_vmspace->vm_map), faddr, &fpa); - pmap_enter(vm_map_pmap(phys_map), taddr, fpa, - VM_PROT_READ | VM_PROT_WRITE, - VM_PROT_READ | VM_PROT_WRITE | PMAP_WIRED); + pmap_kenter_pa(taddr, fpa, VM_PROT_READ|VM_PROT_WRITE); faddr += PAGE_SIZE; taddr += PAGE_SIZE; len -= PAGE_SIZE; @@ -396,6 +394,7 @@ vunmapbuf(bp, len) addr = trunc_page((vaddr_t)bp->b_data); off = (vm_offset_t)bp->b_data - addr; len = round_page(off + len); + pmap_kremove(addr, len); uvm_km_free_wakeup(phys_map, addr, len); bp->b_data = bp->b_saveaddr; bp->b_saveaddr = 0; |