diff options
author | peter <peter@FreeBSD.org> | 2002-02-27 02:14:58 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2002-02-27 02:14:58 +0000 |
commit | 2051cd9c724430c38a8e76a32a323a7d404939f8 (patch) | |
tree | 5ee1d79e142d6f6eb2ed6b2b88f37c237a296d0b /sys/kern/vfs_bio.c | |
parent | 653a9a574c2a54cdd18d7ca6430811b38927f68a (diff) | |
download | FreeBSD-src-2051cd9c724430c38a8e76a32a323a7d404939f8.zip FreeBSD-src-2051cd9c724430c38a8e76a32a323a7d404939f8.tar.gz |
Jake further reduced IPI shootdowns on sparc64 in loops by using ranged
shootdowns in a couple of key places. Do the same for i386. This also
hides some physical addresses from higher levels and has it use the
generic vm_page_t's instead. This will help for PAE down the road.
Obtained from: jake (MI code, suggestions for MD part)
Diffstat (limited to 'sys/kern/vfs_bio.c')
-rw-r--r-- | sys/kern/vfs_bio.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index 32e91ca..d3a849c 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -3244,7 +3244,7 @@ tryagain: vm_page_wire(p); p->valid = VM_PAGE_BITS_ALL; vm_page_flag_clear(p, PG_ZERO); - pmap_kenter(pg, VM_PAGE_TO_PHYS(p)); + pmap_qenter(pg, &p, 1); bp->b_pages[index] = p; vm_page_wakeup(p); } @@ -3272,7 +3272,7 @@ vm_hold_free_pages(struct buf * bp, vm_offset_t from, vm_offset_t to) bp->b_blkno, bp->b_lblkno); } bp->b_pages[index] = NULL; - pmap_kremove(pg); + pmap_qremove(pg, 1); vm_page_busy(p); vm_page_unwire(p, 0); vm_page_free(p); |