diff options
author | jchandra <jchandra@FreeBSD.org> | 2010-08-12 10:09:28 +0000 |
---|---|---|
committer | jchandra <jchandra@FreeBSD.org> | 2010-08-12 10:09:28 +0000 |
commit | dd04fae40355355f03caa7a83a59a64280929d41 (patch) | |
tree | 41d4c60512432e03d9a4c062400cac224f4912a5 /sys/mips/include | |
parent | 38929d2468d35651a8d5868c5b9a4ce02a7734bd (diff) | |
download | FreeBSD-src-dd04fae40355355f03caa7a83a59a64280929d41.zip FreeBSD-src-dd04fae40355355f03caa7a83a59a64280929d41.tar.gz |
Implement pmap changes suggested by alc@:
1. Move dirty bit emulation code that is duplicted for kernel and user
in trap.c to a function pmap_emulate_modified() in pmap.c.
2. While doing dirty bit emulation, it is not necessary to update the
TLB entry on all CPUs using smp_rendezvous(), we can just update the
TLB entry on the current CPU, and let the other CPUs update their TLB
entry lazily if they get an exception.
Reviewed by: alc, neel
Diffstat (limited to 'sys/mips/include')
-rw-r--r-- | sys/mips/include/pmap.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/mips/include/pmap.h b/sys/mips/include/pmap.h index 4b3f69f..5432519 100644 --- a/sys/mips/include/pmap.h +++ b/sys/mips/include/pmap.h @@ -157,16 +157,14 @@ void pmap_bootstrap(void); void *pmap_mapdev(vm_offset_t, vm_size_t); void pmap_unmapdev(vm_offset_t, vm_size_t); vm_offset_t pmap_steal_memory(vm_size_t size); -void pmap_set_modified(vm_offset_t pa); int page_is_managed(vm_offset_t pa); void pmap_kenter(vm_offset_t va, vm_paddr_t pa); void pmap_kremove(vm_offset_t va); void *pmap_kenter_temporary(vm_paddr_t pa, int i); void pmap_kenter_temporary_free(vm_paddr_t pa); int pmap_compute_pages_to_dump(void); -void pmap_update_page(pmap_t pmap, vm_offset_t va, pt_entry_t pte); void pmap_flush_pvcache(vm_page_t m); - +int pmap_emulate_modified(pmap_t pmap, vm_offset_t va); #endif /* _KERNEL */ #endif /* !LOCORE */ |