summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_bio.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2002-02-27 02:14:58 +0000
committerpeter <peter@FreeBSD.org>2002-02-27 02:14:58 +0000
commit2051cd9c724430c38a8e76a32a323a7d404939f8 (patch)
tree5ee1d79e142d6f6eb2ed6b2b88f37c237a296d0b /sys/kern/vfs_bio.c
parent653a9a574c2a54cdd18d7ca6430811b38927f68a (diff)
downloadFreeBSD-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.c4
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);
OpenPOWER on IntegriCloud