On Wed, Oct 23, 2013 at 09:29:25PM +0800, Xiao Guangrong wrote: > It likes nulls list and we use the pte-list as the nulls which can help us to > detect whether the "desc" is moved to anther rmap then we can re-walk the rmap > if that happened > > kvm->slots_lock is held when we do lockless walking that prevents rmap > is reused (free rmap need to hold that lock) so that we can not see the same > nulls used on different rmaps > > Signed-off-by: Xiao Guangrong <xiaoguangrong@xxxxxxxxxxxxxxxxxx> How about simplified lockless walk on the slot while rmapp entry contains a single spte? (which should be the case with two-dimensional paging). That is, grab the lock when finding a rmap with more than one spte in it (and then keep it locked until the end). For example, nothing prevents lockless walker to move into some parent_ptes chain, right? Also, there is no guarantee of termination (as long as sptes are deleted with the correct timing). BTW, can't see any guarantee of termination for rculist nulls either (a writer can race with a lockless reader indefinately, restarting the lockless walk every time). -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html