On 06/06/2014 03:09 AM, Mario Smarduch wrote:
On 06/04/2014 11:55 PM, Xiao Guangrong wrote:
quoted
On 06/05/2014 05:11 AM, Mario Smarduch wrote:
quoted
+ spin_lock(&kvm->mmu_lock);
+
+ for (i = 0; i < n / sizeof(long); i++) {
+ unsigned long mask;
+ gfn_t offset;
+
+ if (!dirty_bitmap[i])
+ continue;
+
+ is_dirty = true;
+
+ mask = xchg(&dirty_bitmap[i], 0);
+ dirty_bitmap_buffer[i] = mask;
+
+ offset = i * BITS_PER_LONG;
+ kvm_mmu_write_protect_pt_masked(kvm, memslot, offset, mask);
+ }
+ if (is_dirty)
+ kvm_flush_remote_tlbs(kvm);
You moved the flush into mmu-lock. Please do not :).
See commit 198c74f43f0f5473f99967aead30ddc622804bc1
Thanks for reviewing, I revised to pick up your version.
Functionally there should be no impact on ARM, the
TLB flush function is different.
Yeah, i agree your point on ARM, but your patch moved
the function from x86 to the common code, that means
this function is reused between ARM and x86. No?