On Tue, Apr 22, 2008 at 09:20:26AM +0200, Andrea Arcangeli wrote:
>     invalidate_range_start {
>       spin_lock(&kvm->mmu_lock);
> 
>       kvm->invalidate_range_count++;
>       rmap-invalidate of sptes in range
> 

        write_seqlock; write_sequnlock;

>       spin_unlock(&kvm->mmu_lock)
>     }
> 
>     invalidate_range_end {
>       spin_lock(&kvm->mmu_lock);
> 
>       kvm->invalidate_range_count--;


        write_seqlock; write_sequnlock;

> 
>       spin_unlock(&kvm->mmu_lock)
>     }

Robin correctly pointed out by PM there should be a seqlock in
range_begin/end too like corrected above.

I guess it's better to use an explicit sequence counter so we avoid an
useless spinlock of the write_seqlock (mmu_lock is enough already in
all places) and so we can increase it with a single op with +=2 in the
range_begin/end. The above is a lower-perf version of the final
locking but simpler for reading purposes.

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to