|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 07/10] VMX: handle PML enabling in vmx_vcpu_initialise
On 27/03/15 02:35, Kai Huang wrote:
> It's possible domain has already been in log-dirty mode when creating vcpu, in
> which case we should enable PML for this vcpu if PML has been enabled for the
> domain.
>
> Signed-off-by: Kai Huang <kai.huang@xxxxxxxxxxxxxxx>
> ---
> xen/arch/x86/hvm/vmx/vmx.c | 24 ++++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index 453bcc5..fce3aa2 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -116,6 +116,30 @@ static int vmx_vcpu_initialise(struct vcpu *v)
> return rc;
> }
>
> + /*
> + * It's rare but still possible that domain has already been in log-dirty
> + * mode when vcpu is being created (commented by Tim), in which case we
> + * should enable PML for this vcpu if PML has been enabled for the
> domain,
> + * and failure to enable results in failure of creating this vcpu.
> + *
> + * Note even there's no vcpu created for the domain,
> vmx_domain_enable_pml
> + * will return successful in which case vmx_domain_pml_enabled will also
> + * return true. And even this is the first vcpu to be created with
> + * vmx_domain_pml_enabled being true, failure of enabling PML still
> results
> + * in failure of creating vcpu, to avoid complicated logic to revert PML
> + * style EPT table to non-PML style EPT table.
> + */
> + if ( vmx_domain_pml_enabled(v->domain) )
> + {
> + if ( (rc = vmx_vcpu_enable_pml(v)) != 0 )
Given the comment here, is the assertion in the top of
vmx_vcpu_enable_pml() liable to trip?
> + {
> + dprintk(XENLOG_ERR, "Failed to enable PML for vcpu %d\n",
> + v->vcpu_id);
Please use %pv to identify the domain as well as vcpu.
~Andrew
> + vmx_destroy_vmcs(v);
> + return rc;
> + }
> + }
> +
> vpmu_initialise(v);
>
> vmx_install_vlapic_mapping(v);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |