Re: [PATCH 2/2] KVM: MMU: Flush TLBs only once in invlpg() before releasing mmu_lock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(Sorry for the delay, I was in bad form this weekend.)

I am sorry, I see what I was misreading.
My eyes misread "kvm_mmu_flush_tlb()" as "kvm_flush_remote_tlbs()".
That's why I could not understand what you said, really sorry.

(2012/02/10 16:42), Xiao Guangrong wrote:

It is obvious wrong, i do not think all tlbs always need be flushed...


What do you mean by "obvious wrong" ?



In the current code, all tlbs are flushed only when s spte is zapped, but after
your change, they are always changed.

Above description will probably tell you what I was thinking.

Even before this patch, we were always flushing TLBs from the caller.


Oh, could you please tell me where tlbs can be flushed except when a spte is
zapped in this path?

Ditto.


I have a question:  your patches apparently changed the timing of TLB flush
but all I could see from the changelogs were:


     KVM: MMU: cleanup FNAME(invlpg)

     Directly Use mmu_page_zap_pte to zap spte in FNAME(invlpg), also remove the
     same code between FNAME(invlpg) and FNAME(sync_page)

This patch dose not change the logic, the tlb flushed time is also not changed,
it just directly call kvm_flush_remote_tlbs when a spte is zapped.


     KVM: MMU: fast prefetch spte on invlpg path

     Fast prefetch spte for the unsync shadow page on invlpg path

This patch did not change the code when kvm_flush_remote_tlbs is called.

Where cause your confused?


Thank you for your explanation!

Probably I should reread the code after taking enough sleep.

BTW, do you think that "kvm_mmu_flush_tlb()" should be moved inside of the
mmu_lock critical section?


	Takuya
--
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


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux