1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-27 11:55:06 +00:00
freebsd/sys/vm
Marcel Moolenaar 1a4fcaebe3 o Introduce vm_sync_icache() for making the I-cache coherent with
the memory or D-cache, depending on the semantics of the platform.
    vm_sync_icache() is basically a wrapper around pmap_sync_icache(),
    that translates the vm_map_t argumument to pmap_t.
o   Introduce pmap_sync_icache() to all PMAP implementation. For powerpc
    it replaces the pmap_page_executable() function, added to solve
    the I-cache problem in uiomove_fromphys().
o   In proc_rwmem() call vm_sync_icache() when writing to a page that
    has execute permissions. This assures that when breakpoints are
    written, the I-cache will be coherent and the process will actually
    hit the breakpoint.
o   This also fixes the Book-E PMAP implementation that was missing
    necessary locking while trying to deal with the I-cache coherency
    in pmap_enter() (read: mmu_booke_enter_locked).

The key property of this change is that the I-cache is made coherent
*after* writes have been done. Doing it in the PMAP layer when adding
or changing a mapping means that the I-cache is made coherent *before*
any writes happen. The difference is key when the I-cache prefetches.
2009-10-21 18:38:02 +00:00
..
default_pager.c Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
device_pager.c Extend the device pager to support different memory attributes on different 2009-08-28 14:06:55 +00:00
memguard.c
memguard.h
phys_pager.c Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
pmap.h o Introduce vm_sync_icache() for making the I-cache coherent with 2009-10-21 18:38:02 +00:00
redzone.c
redzone.h
sg_pager.c Mark the fake pages constructed by the OBJT_SG pager valid. This was 2009-08-29 02:17:40 +00:00
swap_pager.c Remove spurious call to priv_check(PRIV_VM_SWAP_NOQUOTA). 2009-10-18 12:55:39 +00:00
swap_pager.h
uma_core.c Add support for UMA_SLAB_KERNEL to page_free(). (While I'm here remove an 2009-06-18 07:27:11 +00:00
uma_dbg.c
uma_dbg.h
uma_int.h
uma.h
vm_contig.c Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vm_extern.h o Introduce vm_sync_icache() for making the I-cache coherent with 2009-10-21 18:38:02 +00:00
vm_fault.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_glue.c o Introduce vm_sync_icache() for making the I-cache coherent with 2009-10-21 18:38:02 +00:00
vm_init.c
vm_kern.c Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
vm_kern.h
vm_map.c Move the annotation for vm_map_startup() immediately before the function. 2009-10-01 12:48:35 +00:00
vm_map.h Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
vm_meter.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_mmap.c Back out the functional parts from r197537. After r197711, affecting all 2009-10-02 17:51:46 +00:00
vm_object.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_object.h Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_page.c Align and pad the page queue and free page queue locks so that the linker 2009-10-04 18:53:10 +00:00
vm_page.h Align and pad the page queue and free page queue locks so that the linker 2009-10-04 18:53:10 +00:00
vm_pageout.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_pageout.h
vm_pager.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_pager.h Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_param.h
vm_phys.c Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vm_phys.h Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vm_reserv.c
vm_reserv.h
vm_unix.c
vm_zeroidle.c
vm.h Extend the device pager to support different memory attributes on different 2009-08-28 14:06:55 +00:00
vnode_pager.c Change the type of uio_resid member of struct uio from int to ssize_t. 2009-06-25 18:46:30 +00:00
vnode_pager.h