On 03/26/2014 12:40 PM, Hu Yaohui wrote: > Hi all, > I hope you have a good day! > I have debugged the code myself. I have called dump_stack() in > function "__kvm_unsync_page" > and function "invlpg". Actually every time before invlpg is called, > the page fault handled will call "__kvm_unsync_page" before invlpg to > mark the specified sp as unsynced. (correct me if I am wrong). I am > wondering why there is a page fault. AFAIK when calling flush_tlb_page > in the guest os. it will issue invlpg instruction directly, I did not > see any operation which could always cause the page fault.I would > really appreciate if if someone could shed me some lights on it. > Thanks for your time! Page fault is used to map a page into guest and set the proper permission on for it so this is the right place to make decision if the page need be writable. Tlb flush is used when guest wants to have a clean tlb so that host syncs the unsync page tables when it is happing. -- 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