Hello, everyone:
 
        
I know that x86_emulate_memop() is used to emulate writing to page table pages
as Xen intentionally write protect page table pages.
        
Also, the hypercall Hypervisor_update_va_mapping() -> mod_l2/l1_entry() is
also used to modify page table pages.
        
So I get confused about their difference. My questions are:
 
(1)    
When are the above two routines
of modifying page table pages invoked respectively?
(2)    
What’s the difference in
functionality among the two?
 
Best Wishes
Tom