[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 5/7] x86/domain: Optimise the order of actions in arch_domain_create()



>>> On 09.03.18 at 14:18, <andrew.cooper3@xxxxxxxxxx> wrote:
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -430,20 +430,37 @@ int arch_domain_create(struct domain *d, unsigned int 
> domcr_flags,
>                         struct xen_arch_domainconfig *config)
>  {
>      bool paging_initialised = false;
> +    uint32_t emflags;
>      int rc;
>  
> -    if ( config == NULL && !is_idle_domain(d) )
> -        return -EINVAL;
> -
> -    d->arch.s3_integrity = domcr_flags & XEN_DOMCTL_CDF_s3_integrity;
> -
>      INIT_LIST_HEAD(&d->arch.pdev_list);
>  
>      d->arch.relmem = RELMEM_not_started;
>      INIT_PAGE_LIST_HEAD(&d->arch.relmem_list);
>  
> -    if ( d->domain_id && !is_idle_domain(d) &&
> -         cpu_has_amd_erratum(&boot_cpu_data, AMD_ERRATUM_121) )
> +    spin_lock_init(&d->arch.e820_lock);
> +    spin_lock_init(&d->arch.vtsc_lock);
> +
> +    /* Minimal initialisation for the idle domain. */
> +    if ( unlikely(is_idle_domain(d)) )
> +    {
> +        static const struct arch_csw idle_csw = {
> +            .from = paravirt_ctxt_switch_from,
> +            .to   = paravirt_ctxt_switch_to,
> +            .tail = continue_idle_domain,
> +        };
> +
> +        d->arch.ctxt_switch = &idle_csw;
> +
> +        d->arch.cpuid = ZERO_BLOCK_PTR; /* Catch stray misuses. */
> +        d->arch.msr = ZERO_BLOCK_PTR;
> +
> +        return 0;
> +    }
> +    else if ( !config )

May I suggest to avoid the "else" here? Other than that and with
Wei's R-b
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.