On Fri, Jul 21, 2023, Xiaoyao Li wrote: > On 7/21/2023 11:05 PM, Xiaoyao Li wrote: > > On 7/19/2023 7:44 AM, Sean Christopherson wrote: > > > @@ -6255,12 +6298,17 @@ int kvm_init(unsigned vcpu_size, unsigned > > > vcpu_align, struct module *module) > > > if (r) > > > goto err_async_pf; > > > + r = kvm_gmem_init(); > > > + if (r) > > > + goto err_gmem; > > > + > > > kvm_chardev_ops.owner = module; > > > kvm_preempt_ops.sched_in = kvm_sched_in; > > > kvm_preempt_ops.sched_out = kvm_sched_out; > > > kvm_init_debug(); > > > + kvm_gmem_init(); > > > > why kvm_gmem_init() needs to be called again? by mistake? > > I'm sure it's a mistake. Yeah, definitely a bug. > I'm testing the gmem QEMU with this series. SW_PROTECTED_VM gets stuck in a > loop in early OVMF code due to two shared page of OVMF get zapped and > re-mapped infinitely. Removing the second call of kvm_gmem_init() can solve > the issue, though I'm not sure about the reason. Not worth investigating unless you want to satiate your curiosity :-)