Zachary Amsden
6606c3e0da
[PATCH] paravirt: lazy mmu mode hooks.patch
...
Implement lazy MMU update hooks which are SMP safe for both direct and shadow
page tables. The idea is that PTE updates and page invalidations while in
lazy mode can be batched into a single hypercall. We use this in VMI for
shadow page table synchronization, and it is a win. It also can be used by
PPC and for direct page tables on Xen.
For SMP, the enter / leave must happen under protection of the page table
locks for page tables which are being modified. This is because otherwise,
you end up with stale state in the batched hypercall, which other CPUs can
race ahead of. Doing this under the protection of the locks guarantees the
synchronization is correct, and also means that spurious faults which are
generated during this window by remote CPUs are properly handled, as the page
fault handler must re-check the PTE under protection of the same lock.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-10-01 00:39:33 -07:00
..
allocpercpu.c
[PATCH] Extract the allocpercpu functions from the slab allocator
2006-09-26 08:48:51 -07:00
bootmem.c
[PATCH] bootmem: use MAX_DMA_ADDRESS instead of LOW32LIMIT
2006-09-26 08:48:49 -07:00
bounce.c
[PATCH] BLOCK: Separate the bounce buffering code from the highmem code [try #6 ]
2006-09-30 20:32:11 +02:00
fadvise.c
[PATCH] fadvise() make POSIX_FADV_NOREUSE a no-op
2006-08-06 08:57:47 -07:00
filemap.c
[PATCH] Streamline generic_file_* interfaces and filemap cleanups
2006-10-01 00:39:28 -07:00
filemap.h
[PATCH] generic_file_buffered_write(): handle zero-length iovec segments
2006-06-29 10:26:20 -07:00
filemap_xip.c
[PATCH] mark address_space_operations const
2006-06-28 14:59:04 -07:00
fremap.c
[PATCH] paravirt: pte clear not present
2006-10-01 00:39:33 -07:00
highmem.c
[PATCH] BLOCK: Separate the bounce buffering code from the highmem code [try #6 ]
2006-09-30 20:32:11 +02:00
hugetlb.c
[PATCH] NUMA: Add zone_to_nid function
2006-09-26 08:48:52 -07:00
internal.h
[PATCH] mm: VM_BUG_ON
2006-09-26 08:48:44 -07:00
Kconfig
[PATCH] hot-add-mem x86_64: Kconfig changes
2006-10-01 00:39:18 -07:00
madvise.c
[PATCH] Fix MADV_REMOVE protection checking
2006-04-17 18:22:18 -07:00
Makefile
[PATCH] BLOCK: Make it possible to disable the block layer [try #6 ]
2006-09-30 20:52:31 +02:00
memory.c
[PATCH] paravirt: lazy mmu mode hooks.patch
2006-10-01 00:39:33 -07:00
memory_hotplug.c
[PATCH] hot-add-mem x86_64: use CONFIG_MEMORY_HOTPLUG_RESERVE
2006-10-01 00:39:18 -07:00
mempolicy.c
[PATCH] kmemdup: some users
2006-10-01 00:39:19 -07:00
mempool.c
[PATCH] dm: work around mempool_alloc, bio_alloc_bioset deadlocks
2006-09-01 11:39:09 -07:00
migrate.c
[PATCH] BLOCK: Make it possible to disable the block layer [try #6 ]
2006-09-30 20:52:31 +02:00
mincore.c
[PATCH] freepgt: sys_mincore ignore FIRST_USER_PGD_NR
2005-04-19 13:29:20 -07:00
mlock.c
[PATCH] move capable() to capability.h
2006-01-11 18:42:13 -08:00
mmap.c
[PATCH] ZVC: Support NR_SLAB_RECLAIMABLE / NR_SLAB_UNRECLAIMABLE
2006-09-26 08:48:51 -07:00
mmzone.c
[PATCH] mm/mmzone.c: EXPORT_UNUSED_SYMBOL
2006-07-10 13:24:17 -07:00
mprotect.c
[PATCH] paravirt: lazy mmu mode hooks.patch
2006-10-01 00:39:33 -07:00
mremap.c
[PATCH] paravirt: lazy mmu mode hooks.patch
2006-10-01 00:39:33 -07:00
msync.c
[PATCH] mm: msync() cleanup
2006-09-26 08:48:45 -07:00
nommu.c
[PATCH] NOMMU: don't try and give NULL to fput()
2006-10-01 00:39:17 -07:00
oom_kill.c
[PATCH] oom: don't kill current when another OOM in progress
2006-09-29 09:18:21 -07:00
page-writeback.c
[PATCH] BLOCK: Make it possible to disable the block layer [try #6 ]
2006-09-30 20:52:31 +02:00
page_alloc.c
[PATCH] mm/page_alloc: use NULL instead of 0 for ptr
2006-09-27 08:26:13 -07:00
page_io.c
[PATCH] swsusp: read speedup
2006-09-26 08:48:58 -07:00
pdflush.c
[PATCH] pdflush: handle resume wakeups
2006-06-25 10:01:06 -07:00
prio_tree.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
readahead.c
spelling fixes
2006-06-26 18:35:02 +02:00
rmap.c
[PATCH] mm: tracking shared dirty pages
2006-09-26 08:48:44 -07:00
shmem.c
[PATCH] r/o bind mount prepwork: inc_nlink() helper
2006-10-01 00:39:30 -07:00
shmem_acl.c
[PATCH] Access Control Lists for tmpfs
2006-09-29 09:18:24 -07:00
slab.c
[PATCH] single bit flip detector
2006-09-29 09:18:10 -07:00
slob.c
[PATCH] Make kmem_cache_destroy() return void
2006-09-27 08:26:11 -07:00
sparse.c
Remove obsolete #include <linux/config.h>
2006-06-30 19:25:36 +02:00
swap.c
[PATCH] mm/: make functions static
2006-09-26 08:48:45 -07:00
swap_state.c
[PATCH] lockdep: locking init debugging improvement
2006-07-03 15:27:02 -07:00
swapfile.c
[PATCH] valid_swaphandles() fix
2006-09-29 09:18:23 -07:00
thrash.c
[PATCH] temporarily disable swap token on memory pressure
2005-11-28 14:42:25 -08:00
tiny-shmem.c
[PATCH] devfs: Remove the devfs_fs_kernel.h file from the tree
2006-06-26 12:25:08 -07:00
truncate.c
[PATCH] invalidate_inode_pages2(): ignore page refcounts
2006-10-01 00:39:33 -07:00
util.c
[PATCH] kmemdup: introduce
2006-10-01 00:39:19 -07:00
vmalloc.c
[PATCH] Mark __remove_vm_area() static
2006-09-27 08:26:13 -07:00
vmscan.c
[PATCH] page invalidation cleanup
2006-09-27 08:26:12 -07:00
vmstat.c
[PATCH] zone_statistics: Use hot node instead of cold zone_pgdat
2006-09-27 08:26:13 -07:00