On Tue, 2023-02-14 at 10:55 +0800, Binbin Wu wrote: > > Emm, the other 3 are > > FNAME(walk_addr_generic)() > > kvm_arch_setup_async_pf() > > kvm_arch_async_page_ready > > > > In former version, I clear CR3.LAM bits for guest_pgd inside mmu- > > > get_guest_pgd(). I think this is generic. Perhaps I should still > > > do it > > > > in that way. Let's wait for other's comments on this. > > Thanks for pointing out. > > I also prefer to handle it inside get_guest_pdg, > but in kvm_arch_setup_async_pf()/kvm_arch_async_page_ready(), the > value > is assigned to > cr3 of struct kvm_arch_async_pf, does it requires all fileds of cr3? > I'm looking into the async PF. Anyone who's familiar with async PF can shed some light? If kvm_arch_setup_async_pf()/kvm_arch_async_page_ready() needs whole CR3, would you agree we have 2 methods: get_cr3() and get_pgd()?