All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@citrix.com>
To: Chen Baozi <cbz@baozis.org>, xen-devel@lists.xenproject.org
Cc: Keir Fraser <keir@xen.org>,
	Ian Campbell <ian.campbell@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Tim Deegan <tim@xen.org>, Julien Grall <julien.grall@citrix.com>,
	Jan Beulich <jbeulich@suse.com>, Chen Baozi <baozich@gmail.com>
Subject: Re: [PATCH V5 08/10] xen: Call arch_domain_create() before evtchn_init()
Date: Sun, 31 May 2015 14:29:09 +0100	[thread overview]
Message-ID: <556B0CA5.3020103@citrix.com> (raw)
In-Reply-To: <1432984051-10838-9-git-send-email-cbz@baozis.org>

Hi Chen,

On 30/05/2015 12:07, Chen Baozi wrote:
> From: Chen Baozi <baozich@gmail.com>
>
> evtchn_init() will call domain_max_vcpus() to allocate poll_mask, which
> needs the max vCPU number returned by domain_max_vcpus(). On arm/arm64
> platform, this number is determined by the vGIC the guest is going to
> use, which won't be initialised until arch_domain_create() is finished.
>
> Signed-off-by: Chen Baozi <baozich@gmail.com>
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> Cc: Julien Grall <julien.grall@citrix.com>
> Cc: Ian Campbell <ian.campbell@citrix.com>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Keir Fraser <keir@xen.org>
> Cc: Tim Deegan <tim@xen.org>
> ---
>   xen/common/domain.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 6803c4d..5b98f69 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -316,6 +316,10 @@ struct domain *domain_create(domid_t domid, unsigned int domcr_flags,
>       if ( domcr_flags & DOMCRF_dummy )
>           return d;
>
> +    if ( (err = arch_domain_create(d, domcr_flags, config)) != 0 )
> +        goto fail;
> +    init_status |= INIT_arch;
> +
>       if ( !is_idle_domain(d) )
>       {
>           if ( (err = xsm_domain_create(XSM_HOOK, d, ssidref)) != 0 )
> @@ -354,10 +358,6 @@ struct domain *domain_create(domid_t domid, unsigned int domcr_flags,
>               goto fail;
>       }
>
> -    if ( (err = arch_domain_create(d, domcr_flags, config)) != 0 )
> -        goto fail;
> -    init_status |= INIT_arch;
> -

NACK. Moving arch_domain_create means that we will allocate memory 
before checking the XSM policy. I don't think we want to execute an 
expensive function if the domain is not allowed to boot.

Furthermore, did you audit all the code to make sure that 
arch_domain_create (on both x86 and ARM) doesn't use the allocation done 
before (i.e evtch, grant table,...)?

Depending on this question, we may want to create a preinit domain 
creation with set the different value (such as the vGIC callback) 
without allocation memory.

Regards,

-- 
Julien Grall

  reply	other threads:[~2015-05-31 13:29 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-30 11:07 [PATCH V5 00/10] Support more than 8 vcpus on arm64 with GICv3 Chen Baozi
2015-05-30 11:07 ` [PATCH V5 01/10] xen/arm: gic-v3: Increase the size of GICR in address space for guest Chen Baozi
2015-05-30 11:07 ` [PATCH V5 02/10] xen/arm: Add functions of mapping between vCPUID and virtual affinity Chen Baozi
2015-05-31 12:51   ` Julien Grall
2015-05-30 11:07 ` [PATCH V5 03/10] xen/arm: Use the new functions for vCPUID/vaffinity transformation Chen Baozi
2015-05-31 12:53   ` Julien Grall
2015-05-30 11:07 ` [PATCH V5 04/10] xen/arm: Use cpumask_t type for vcpu_mask in vgic_to_sgi Chen Baozi
2015-05-31 13:05   ` Julien Grall
2015-05-30 11:07 ` [PATCH V5 05/10] xen/arm64: gicv3: Use AFF1 when translating ICC_SGI1R_EL1 to cpumask Chen Baozi
2015-05-30 11:15   ` Chen Baozi
2015-05-31 13:14   ` Julien Grall
2015-05-31 15:25     ` Chen Baozi
2015-05-31 17:58       ` Julien Grall
2015-05-30 11:07 ` [PATCH V5 06/10] tools/libxl: Set 'reg' of cpu node equal to MPIDR affinity for domU Chen Baozi
2015-05-31 13:16   ` Julien Grall
2015-05-30 11:07 ` [PATCH V5 07/10] xen/arm: Set 'reg' of cpu node for dom0 to match MPIDR's affinity Chen Baozi
2015-05-31 13:20   ` Julien Grall
2015-05-30 11:07 ` [PATCH V5 08/10] xen: Call arch_domain_create() before evtchn_init() Chen Baozi
2015-05-31 13:29   ` Julien Grall [this message]
2015-05-30 11:07 ` [PATCH V5 09/10] xen/arm: make domain_max_vcpus return value from vgic_ops Chen Baozi
2015-05-31 13:35   ` Julien Grall
2015-05-31 15:31     ` Chen Baozi
2015-05-31 18:05       ` Julien Grall
2015-05-31 18:21         ` Andrew Cooper
2015-05-30 11:07 ` [PATCH V5 10/10] xen/arm64: increase MAX_VIRT_CPUS to 128 on arm64 Chen Baozi
2015-05-31 13:40   ` Julien Grall
2015-05-31 15:37     ` Chen Baozi
2015-05-31 18:21       ` Julien Grall
2015-06-01  0:56         ` Chen Baozi
2015-06-01  8:04           ` Julien Grall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=556B0CA5.3020103@citrix.com \
    --to=julien.grall@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=baozich@gmail.com \
    --cc=cbz@baozis.org \
    --cc=ian.campbell@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=keir@xen.org \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.