xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien.grall@arm.com>
To: Andre Przywara <andre.przywara@arm.com>,
	Stefano Stabellini <sstabellini@kernel.org>
Cc: xen-devel@lists.xenproject.org,
	Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>,
	Vijay Kilari <vijay.kilari@gmail.com>,
	Shanker Donthineni <shankerd@codeaurora.org>,
	Manish Jaggi <mjaggi@caviumnetworks.com>
Subject: Re: [PATCH v11 06/34] ARM: vGIC: move irq_to_pending() calls under the VGIC VCPU lock
Date: Mon, 12 Jun 2017 16:22:32 +0100	[thread overview]
Message-ID: <332511f9-3133-b9df-e9d4-80ac29a77187@arm.com> (raw)
In-Reply-To: <20170609174141.5068-7-andre.przywara@arm.com>

Hi Andre,

On 09/06/17 18:41, Andre Przywara wrote:
> @@ -285,6 +291,17 @@ void arch_move_irqs(struct vcpu *v)
>      struct vcpu *v_target;
>      int i;
>
> +    /*
> +     * We don't migrate LPIs at the moment.
> +     * If we ever do, we must make sure that the struct pending_irq does
> +     * not go away, as there is no lock preventing this here.
> +     * To ensure this, we check if the loop below ever touches LPIs.
> +     * In the moment vgic_num_irqs() just covers SPIs, as it's mostly used
> +     * for allocating the pending_irq and irq_desc array, in which LPIs
> +     * don't participate.

IHMO, this paragraph should also be added on top of the definition 
vgic_num_irqs.

> +     */
> +    ASSERT(!is_lpi(vgic_num_irqs(d) - 1));
> +
>      for ( i = 32; i < vgic_num_irqs(d); i++ )
>      {
>          v_target = vgic_get_target_vcpu(v, i);
> @@ -299,6 +316,7 @@ void vgic_disable_irqs(struct vcpu *v, uint32_t r, int n)
>  {
>      const unsigned long mask = r;
>      struct pending_irq *p;
> +    struct irq_desc *desc;
>      unsigned int irq;
>      unsigned long flags;
>      int i = 0;
> @@ -307,17 +325,19 @@ void vgic_disable_irqs(struct vcpu *v, uint32_t r, int n)
>      while ( (i = find_next_bit(&mask, 32, i)) < 32 ) {
>          irq = i + (32 * n);
>          v_target = vgic_get_target_vcpu(v, irq);
> +

Spurious change.

>          spin_lock_irqsave(&v_target->arch.vgic.lock, flags);
>          p = irq_to_pending(v_target, irq);
>          clear_bit(GIC_IRQ_GUEST_ENABLED, &p->status);
>          gic_remove_from_lr_pending(v_target, p);
> +        desc = p->desc;
>          spin_unlock_irqrestore(&v_target->arch.vgic.lock, flags);

Cheers,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2017-06-12 15:22 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-09 17:41 [PATCH v11 00/34] arm64: Dom0 ITS emulation Andre Przywara
2017-06-09 17:41 ` [PATCH v11 01/34] ARM: vGIC: avoid rank lock when reading priority Andre Przywara
2017-06-12 14:49   ` Julien Grall
2017-06-12 22:34     ` Stefano Stabellini
2017-06-13  9:01       ` Julien Grall
2017-06-13 22:19         ` Stefano Stabellini
2017-06-14  8:55           ` Julien Grall
2017-06-14 11:22             ` Andre Przywara
2017-06-14 11:27               ` Julien Grall
2017-06-14 17:32             ` Stefano Stabellini
2017-06-14 17:44               ` Julien Grall
2017-06-14 18:15                 ` Stefano Stabellini
2017-06-14 18:32                   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 02/34] ARM: GICv3: enable ITS on the host Andre Przywara
2017-06-12 14:51   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 03/34] ARM: GICv3: enable LPIs " Andre Przywara
2017-06-09 17:41 ` [PATCH v11 04/34] ARM: GICv3: setup number of LPI bits for a GICv3 guest Andre Przywara
2017-06-12 15:03   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 05/34] ARM: vGIC: rework gic_remove_from_queues() Andre Przywara
2017-06-12 15:15   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 06/34] ARM: vGIC: move irq_to_pending() calls under the VGIC VCPU lock Andre Przywara
2017-06-12 15:22   ` Julien Grall [this message]
2017-06-12 22:43     ` Stefano Stabellini
2017-06-09 17:41 ` [PATCH v11 07/34] ARM: vGIC: introduce gic_remove_irq() Andre Przywara
2017-06-12 15:28   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 08/34] ARM: GIC: Add checks for NULL pointer pending_irq's Andre Przywara
2017-06-12 15:30   ` Julien Grall
2017-06-12 22:44   ` Stefano Stabellini
2017-06-09 17:41 ` [PATCH v11 09/34] ARM: GICv3: introduce separate pending_irq structs for LPIs Andre Przywara
2017-06-09 17:41 ` [PATCH v11 10/34] ARM: GIC: export and extend vgic_init_pending_irq() Andre Przywara
2017-06-12 15:36   ` Julien Grall
2017-06-14 15:54     ` Andre Przywara
2017-06-14 16:33       ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 11/34] ARM: vGIC: cache virtual LPI priority in struct pending_irq Andre Przywara
2017-06-12 15:39   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 12/34] ARM: vGIC: add LPI VCPU ID to " Andre Przywara
2017-06-12 15:46   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 13/34] ARM: GIC: ITS: remove no longer needed VCPU ID in host LPI entry Andre Przywara
2017-06-12 15:47   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 14/34] ARM: GICv3: forward pending LPIs to guests Andre Przywara
2017-06-12 15:53   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 15/34] ARM: vGICv3: handle virtual LPI pending and property tables Andre Przywara
2017-06-09 17:41 ` [PATCH v11 16/34] ARM: introduce vgic_access_guest_memory() Andre Przywara
2017-06-09 17:41 ` [PATCH v11 17/34] ARM: vGICv3: re-use vgic_reg64_check_access Andre Przywara
2017-06-09 17:41 ` [PATCH v11 18/34] ARM: vGIC: advertise LPI support Andre Przywara
2017-06-12 16:02   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 19/34] ARM: vITS: add command handling stub and MMIO emulation Andre Przywara
2017-06-12 16:04   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 20/34] ARM: vITS: introduce translation table walks Andre Przywara
2017-06-12 16:07   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 21/34] ARM: vITS: provide access to struct pending_irq Andre Przywara
2017-06-09 17:41 ` [PATCH v11 22/34] ARM: vITS: handle INT command Andre Przywara
2017-06-09 17:41 ` [PATCH v11 23/34] ARM: vITS: handle MAPC command Andre Przywara
2017-06-09 17:41 ` [PATCH v11 24/34] ARM: vITS: handle CLEAR command Andre Przywara
2017-06-12 16:19   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 25/34] ARM: vITS: handle MAPD command Andre Przywara
2017-06-13 22:02   ` Stefano Stabellini
2017-06-09 17:41 ` [PATCH v11 26/34] ARM: GICv3: handle unmapped LPIs Andre Przywara
2017-06-12 16:30   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 27/34] ARM: vITS: handle MAPTI/MAPI command Andre Przywara
2017-06-12 16:36   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 28/34] ARM: vITS: handle MOVI command Andre Przywara
2017-06-12 16:37   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 29/34] ARM: vITS: handle DISCARD command Andre Przywara
2017-06-09 17:41 ` [PATCH v11 30/34] ARM: vITS: handle INV command Andre Przywara
2017-06-09 17:41 ` [PATCH v11 31/34] ARM: vITS: handle INVALL command Andre Przywara
2017-06-12 16:41   ` Julien Grall
2017-06-09 17:41 ` [PATCH v11 32/34] ARM: vITS: increase mmio_count for each ITS Andre Przywara
2017-06-09 17:41 ` [PATCH v11 33/34] ARM: vITS: create and initialize virtual ITSes for Dom0 Andre Przywara
2017-06-09 17:41 ` [PATCH v11 34/34] ARM: vITS: create ITS subnodes for Dom0 DT Andre Przywara
2017-06-12  5:04 ` [PATCH v11 00/34] arm64: Dom0 ITS emulation Manish Jaggi

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=332511f9-3133-b9df-e9d4-80ac29a77187@arm.com \
    --to=julien.grall@arm.com \
    --cc=Vijaya.Kumar@caviumnetworks.com \
    --cc=andre.przywara@arm.com \
    --cc=mjaggi@caviumnetworks.com \
    --cc=shankerd@codeaurora.org \
    --cc=sstabellini@kernel.org \
    --cc=vijay.kilari@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).