Right this has to be something like rw spinlock. Its needed for both
GRU/XPmem. Not sure about KVM.
Take the read lock for invalidate operations. These can occur
concurrently. (Or a simpler implementation for the GRU may just use a
spinlock).
The write lock must be held for populate operations.
Lock can be refined as needed by the notifier driver. F.e. locking could
be restricted to certain ranges.
--