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: Julien Grall <julien.grall@citrix.com>,
	Chen Baozi <baozich@gmail.com>,
	Ian Campbell <ian.campbell@citrix.com>
Subject: Re: [PATCH V2 5/8] xen/arm: vGIC: Consider AFF1 when injecting SGI.
Date: Tue, 26 May 2015 16:36:51 +0200	[thread overview]
Message-ID: <55648503.7060909@citrix.com> (raw)
In-Reply-To: <1432389153-28207-6-git-send-email-cbz@baozis.org>

Hi Chen,

On 23/05/2015 15:52, Chen Baozi wrote:
> From: Chen Baozi <baozich@gmail.com>
>
> Use the AFF1 value of ICC_SGI1R_EL1 when injecting SGI in vGIC,
> which expands the number of supported vCPU more than 16 that
> target list bitmap can hold independently.
>
> Signed-off-by: Chen Baozi <baozich@gmail.com>
> ---
>   xen/arch/arm/vgic.c | 10 ++++++++--
>   1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
> index 7b387b7..27bd137 100644
> --- a/xen/arch/arm/vgic.c
> +++ b/xen/arch/arm/vgic.c
> @@ -367,13 +367,19 @@ int vgic_to_sgi(struct vcpu *v, register_t sgir, enum gic_sgi_mode irqmode, int
>
>       for_each_set_bit( vcpuid, &vcpu_mask, d->max_vcpus )
>       {
> -        if ( d->vcpu[vcpuid] != NULL && !is_vcpu_online(d->vcpu[vcpuid]) )
> +        /*
> +         * XXX: We assumes that only AFF1 and target list are used in
> +         * ICC_SGI1R_EL1.
> +         */
> +        int real_id = vcpuid + ((sgir >> 16) & 0xff) * 16;
> +

This is not the right way to do it. vgic_to_sgi is common with GICv2 and 
GICv3 and should stay like that.

Even if we take aside the GICv2 problem, the code is buggy as it only 
works when the SGI is sent to a list of VCPUs (i.e SGI_TARGET_LIST).

Overall this should be done in vgic_v3_to_sgi by setting the correct bit 
in vcpu_mask. Although this will require to find another type for 
vcpu_mask as it's only able to store 64 cpus.

Regards,

-- 
Julien Grall

  reply	other threads:[~2015-05-26 14:37 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-23 13:52 [PATCH V2 0/8] Support more than 8 vcpus on arm64 with GICv3 Chen Baozi
2015-05-23 13:52 ` [PATCH V2 1/8] xen/arm64: increase MAX_VIRT_CPUS to 128 on arm64 Chen Baozi
2015-05-23 14:46   ` Julien Grall
2015-05-25  1:01     ` Chen Baozi
2015-05-25  9:46       ` Julien Grall
2015-05-23 13:52 ` [PATCH V2 2/8] xen/arm: gic-v3: Increase the size of GICR in address space for guest Chen Baozi
2015-05-23 14:48   ` Julien Grall
2015-05-23 13:52 ` [PATCH V2 3/8] xen/arm: Add funtions of mapping between vCPUID and vMPIDR Chen Baozi
2015-05-23 18:36   ` Julien Grall
2015-05-23 13:52 ` [PATCH V2 4/8] xen/arm: Use the new mapping relations " Chen Baozi
2015-05-24 12:51   ` Julien Grall
2015-05-25  2:34     ` Chen Baozi
2015-05-25  9:53       ` Julien Grall
2015-05-23 13:52 ` [PATCH V2 5/8] xen/arm: vGIC: Consider AFF1 when injecting SGI Chen Baozi
2015-05-26 14:36   ` Julien Grall [this message]
2015-05-23 13:52 ` [PATCH V2 6/8] tools/libxl: Make DT node of GICv3 according to max_vcpus Chen Baozi
2015-05-26 14:40   ` Julien Grall
2015-05-23 13:52 ` [PATCH V2 7/8] tools/libxl: Set logical CPUID in DT node equal to MPIDR for domU Chen Baozi
2015-05-26 14:48   ` Julien Grall
2015-05-23 13:52 ` [PATCH V2 8/8] xen/arm: Set logical CPUID in DT node for dom0 the same as MPIDR Chen Baozi
2015-05-26 14:50   ` 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=55648503.7060909@citrix.com \
    --to=julien.grall@citrix.com \
    --cc=baozich@gmail.com \
    --cc=cbz@baozis.org \
    --cc=ian.campbell@citrix.com \
    --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.