Marcelo Tosatti wrote:

The cost of hash table and memslot lookups are quite significant if the
workload is pagetable write intensive resulting in increased mmu_lock
contention.

@@ -1593,7 +1593,16 @@ static int set_spte(struct kvm_vcpu *vcp
spte |= PT_WRITABLE_MASK; - if (mmu_need_write_protect(vcpu, gfn, can_unsync)) {
+               /*
+                * Optimization: for pte sync, if spte was writable the hash
+                * lookup is unnecessary (and expensive). Write protection
+                * is responsibility of mmu_get_page / kvm_sync_page.
+                * Same reasoning can be applied to dirty page accounting.
+                */
+               if (sync_page && is_writeble_pte(*shadow_pte))
+                       goto set_pte;

What if *shadow_pte points at a different page?  Is that possible?


--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to