| From: |
| Christoph Lameter <clameter-sJ/iWh9BUns@public.gmane.org> |
| To: |
| Andrea Arcangeli <andrea-atKUWr5tajBWk0Htik3J/w@public.gmane.org> |
| Subject: |
| [patch 0/6] [RFC] MMU Notifiers V2 |
| Date: |
| Mon, 28 Jan 2008 12:28:40 -0800 |
| Message-ID: |
| <20080128202840.974253868@sgi.com> |
| Cc: |
| Nick Piggin <npiggin-l3A5Bk7waGM@public.gmane.org>,
Peter Zijlstra <a.p.zijlstra-/NLkJaSkS4VmR6Xm/wNWPw@public.gmane.org>, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org,
Benjamin Herrenschmidt <benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>, steiner-sJ/iWh9BUns@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>,
kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, daniel.blueman-xqY44rlHlBpWk0Htik3J/w@public.gmane.org,
Robin Holt <holt-sJ/iWh9BUns@public.gmane.org>, Hugh Dickins <hugh-DTz5qymZ9yRBDgjK7y7TUQ@public.gmane.org> |
| Archive-link: |
| Article,
Thread
|
This is a patchset implementing MMU notifier callbacks based on Andrea's
earlier work. These are needed if Linux pages are referenced from something
else than tracked by the rmaps of the kernel.
Issues:
- Feedback from uses of the callbacks for KVM, RDMA, XPmem and GRU
- RCU quiescent periods are required on registering and unregistering
notifiers to guarantee visibility to other processors.
Currently only mmu_notifier_release() does the correct thing.
It is up to the user to provide RCU quiescent periods for
register/unregister functions if they are called outside of the
->release method.
Andrea's mmu_notifier #4 -> RFC V1
- Merge subsystem rmap based with Linux rmap based approach
- Move Linux rmap based notifiers out of macro
- Try to account for what locks are held while the notifiers are
called.
- Develop a patch sequence that separates out the different types of
hooks so that we can review their use.
- Avoid adding include to linux/mm_types.h
- Integrate RCU logic suggested by Peter.
V1->V2:
- Improve RCU support
- Use mmap_sem for mmu_notifier register / unregister
- Drop invalidate_page from COW, mm/fremap.c and mm/rmap.c since we
already have invalidate_range() callbacks there.
- Clean compile for !MMU_NOTIFIER
- Isolate filemap_xip strangeness into its own diff
- Pass a the flag to invalidate_range to indicate if a spinlock
is held.
- Add invalidate_all()
--
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/