diff options
author | Sagi Grimberg <[email protected]> | 2012-10-08 16:29:24 -0700 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2012-10-09 16:22:23 +0900 |
commit | 21a92735f660eaecf69a6f2e777f18463760ec32 (patch) | |
tree | 15299bab0280cfccfce1d97168234411cb4799b8 /lib/memory-notifier-error-inject.c | |
parent | 48af0d7cb3c87fae2ff38af372821dcb0b019c9e (diff) |
mm: mmu_notifier: have mmu_notifiers use a global SRCU so they may safely schedule
With an RCU based mmu_notifier implementation, any callout to
mmu_notifier_invalidate_range_{start,end}() or
mmu_notifier_invalidate_page() would not be allowed to call schedule()
as that could potentially allow a modification to the mmu_notifier
structure while it is currently being used.
Since srcu allocs 4 machine words per instance per cpu, we may end up
with memory exhaustion if we use srcu per mm. So all mms share a global
srcu. Note that during large mmu_notifier activity exit & unregister
paths might hang for longer periods, but it is tolerable for current
mmu_notifier clients.
Signed-off-by: Sagi Grimberg <[email protected]>
Signed-off-by: Andrea Arcangeli <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Haggai Eran <[email protected]>
Cc: "Paul E. McKenney" <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'lib/memory-notifier-error-inject.c')
0 files changed, 0 insertions, 0 deletions