Messages in this thread | | | Date | Thu, 8 May 2008 03:34:59 +0200 | From | Andrea Arcangeli <> | Subject | Re: [PATCH 08 of 11] anon-vma-rwsem |
| |
Sorry for not having completely answered to this. I initially thought stop_machine could work when you mentioned it, but I don't think it can even removing xpmem block-inside-mmu-notifier-method requirements.
For stop_machine to solve this (besides being slower and potentially not more safe as running stop_machine in a loop isn't nice), we'd need to prevent preemption in between invalidate_range_start/end.
I think there are two ways:
1) add global lock around mm_lock to remove the sorting
2) remove invalidate_range_start/end, nuke mm_lock as consequence of it, and replace all three with invalidate_pages issued inside the PT lock, one invalidation for each 512 pte_t modified, so serialization against get_user_pages becomes trivial but this will be not ok at all for SGI as it increases a lot their invalidation frequency
For KVM both ways are almost the same.
I'll implement 1 now then we'll see...
| |