All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoffer Dall <cdall@linaro.org>
To: Marc Zyngier <marc.zyngier@arm.com>
Cc: linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
	Christoffer Dall <christoffer.dall@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Jason Cooper <jason@lakedaemon.net>,
	Eric Auger <eric.auger@redhat.com>,
	Shanker Donthineni <shankerd@codeaurora.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Shameerali Kolothum Thodi  <shameerali.kolothum.thodi@huawei.com>
Subject: Re: [PATCH v3 46/59] KVM: arm/arm64: GICv4: Handle MOVALL applied to a vPE
Date: Wed, 30 Aug 2017 22:10:36 +0200	[thread overview]
Message-ID: <20170830201036.GL24522@cbox> (raw)
In-Reply-To: <e4c02bf0-3852-2e3d-25a1-0fbac11f966a@arm.com>

On Wed, Aug 30, 2017 at 03:46:12PM +0100, Marc Zyngier wrote:
> On 28/08/17 19:18, Christoffer Dall wrote:
> > On Mon, Jul 31, 2017 at 06:26:24PM +0100, Marc Zyngier wrote:
> >> The current implementation of MOVALL doesn't allow us to call
> >> into the core ITS code as we hold a number of spinlocks.
> >>
> >> Let's try a method used in other parts of the code, were we copy
> >> the intids of the candicate interrupts, and then do whatever
> >> we need to do with them outside of the critical section.
> >>
> >> This allows us to move the interrupts one by one, at the expense
> >> of a bit of CPU time. Who cares? MOVALL is such a stupid command
> >> anyway...
> >>
> >> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
> >> ---
> >>  virt/kvm/arm/vgic/vgic-its.c | 27 ++++++++++++++++++++-------
> >>  1 file changed, 20 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
> >> index 2c065c970ba0..65cc77fde609 100644
> >> --- a/virt/kvm/arm/vgic/vgic-its.c
> >> +++ b/virt/kvm/arm/vgic/vgic-its.c
> >> @@ -1147,11 +1147,12 @@ static int vgic_its_cmd_handle_invall(struct kvm *kvm, struct vgic_its *its,
> >>  static int vgic_its_cmd_handle_movall(struct kvm *kvm, struct vgic_its *its,
> >>  				      u64 *its_cmd)
> >>  {
> >> -	struct vgic_dist *dist = &kvm->arch.vgic;
> >>  	u32 target1_addr = its_cmd_get_target_addr(its_cmd);
> >>  	u32 target2_addr = its_cmd_mask_field(its_cmd, 3, 16, 32);
> >>  	struct kvm_vcpu *vcpu1, *vcpu2;
> >>  	struct vgic_irq *irq;
> >> +	u32 *intids;
> >> +	int irq_count, i;
> >>  
> >>  	if (target1_addr >= atomic_read(&kvm->online_vcpus) ||
> >>  	    target2_addr >= atomic_read(&kvm->online_vcpus))
> >> @@ -1163,19 +1164,31 @@ static int vgic_its_cmd_handle_movall(struct kvm *kvm, struct vgic_its *its,
> >>  	vcpu1 = kvm_get_vcpu(kvm, target1_addr);
> >>  	vcpu2 = kvm_get_vcpu(kvm, target2_addr);
> >>  
> >> -	spin_lock(&dist->lpi_list_lock);
> >> +	irq_count = vgic_copy_lpi_list(vcpu1, &intids);
> >> +	if (irq_count < 0)
> >> +		return irq_count;
> >>  
> >> -	list_for_each_entry(irq, &dist->lpi_list_head, lpi_list) {
> >> -		spin_lock(&irq->irq_lock);
> >> +	for (i = 0; i < irq_count; i++) {
> >> +		irq = vgic_get_irq(kvm, NULL, intids[i]);
> >> +		if (!irq)
> >> +			continue;
> > 
> > Getting irq == NULL means that we've removed this LPI since
> > vgic_copy_lpi_list, right?  Can this really happen while we hold the its
> > mutex?
> 
> A disappearing LPI can only be the result of a DISCARD, which cannot
> happen, as we indeed hold the ITS lock.
> 
> > Also, we don't check this in its_sync_lpi_pending_table which would
> > indicate that we either have a bug there or are being overly careful
> > here (or should change the continue to BUG).
> 
> Let's aim for consistency. I'll drop this test.
> 
> > 
> > 
> >>  
> >>  		if (irq->target_vcpu == vcpu1)
> >>  			irq->target_vcpu = vcpu2;
> >>  
> >> -		spin_unlock(&irq->irq_lock);
> > 
> > Is it safe to modify target_vcpu without holding the irq_lock?
> 
> Unintentional regression. I'll fix that. But I wonder if there is an
> actual point in testing testing the target_vcpu here. Since we hold the
> ITS lock, we're damn sure that the affinity can't be changed, right?
> 

Ah, yes, because you filtered the list on the source VCPU already you
should be able to let go of this check.

Thanks,
-Christoffer

WARNING: multiple messages have this Message-ID (diff)
From: cdall@linaro.org (Christoffer Dall)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 46/59] KVM: arm/arm64: GICv4: Handle MOVALL applied to a vPE
Date: Wed, 30 Aug 2017 22:10:36 +0200	[thread overview]
Message-ID: <20170830201036.GL24522@cbox> (raw)
In-Reply-To: <e4c02bf0-3852-2e3d-25a1-0fbac11f966a@arm.com>

On Wed, Aug 30, 2017 at 03:46:12PM +0100, Marc Zyngier wrote:
> On 28/08/17 19:18, Christoffer Dall wrote:
> > On Mon, Jul 31, 2017 at 06:26:24PM +0100, Marc Zyngier wrote:
> >> The current implementation of MOVALL doesn't allow us to call
> >> into the core ITS code as we hold a number of spinlocks.
> >>
> >> Let's try a method used in other parts of the code, were we copy
> >> the intids of the candicate interrupts, and then do whatever
> >> we need to do with them outside of the critical section.
> >>
> >> This allows us to move the interrupts one by one, at the expense
> >> of a bit of CPU time. Who cares? MOVALL is such a stupid command
> >> anyway...
> >>
> >> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
> >> ---
> >>  virt/kvm/arm/vgic/vgic-its.c | 27 ++++++++++++++++++++-------
> >>  1 file changed, 20 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
> >> index 2c065c970ba0..65cc77fde609 100644
> >> --- a/virt/kvm/arm/vgic/vgic-its.c
> >> +++ b/virt/kvm/arm/vgic/vgic-its.c
> >> @@ -1147,11 +1147,12 @@ static int vgic_its_cmd_handle_invall(struct kvm *kvm, struct vgic_its *its,
> >>  static int vgic_its_cmd_handle_movall(struct kvm *kvm, struct vgic_its *its,
> >>  				      u64 *its_cmd)
> >>  {
> >> -	struct vgic_dist *dist = &kvm->arch.vgic;
> >>  	u32 target1_addr = its_cmd_get_target_addr(its_cmd);
> >>  	u32 target2_addr = its_cmd_mask_field(its_cmd, 3, 16, 32);
> >>  	struct kvm_vcpu *vcpu1, *vcpu2;
> >>  	struct vgic_irq *irq;
> >> +	u32 *intids;
> >> +	int irq_count, i;
> >>  
> >>  	if (target1_addr >= atomic_read(&kvm->online_vcpus) ||
> >>  	    target2_addr >= atomic_read(&kvm->online_vcpus))
> >> @@ -1163,19 +1164,31 @@ static int vgic_its_cmd_handle_movall(struct kvm *kvm, struct vgic_its *its,
> >>  	vcpu1 = kvm_get_vcpu(kvm, target1_addr);
> >>  	vcpu2 = kvm_get_vcpu(kvm, target2_addr);
> >>  
> >> -	spin_lock(&dist->lpi_list_lock);
> >> +	irq_count = vgic_copy_lpi_list(vcpu1, &intids);
> >> +	if (irq_count < 0)
> >> +		return irq_count;
> >>  
> >> -	list_for_each_entry(irq, &dist->lpi_list_head, lpi_list) {
> >> -		spin_lock(&irq->irq_lock);
> >> +	for (i = 0; i < irq_count; i++) {
> >> +		irq = vgic_get_irq(kvm, NULL, intids[i]);
> >> +		if (!irq)
> >> +			continue;
> > 
> > Getting irq == NULL means that we've removed this LPI since
> > vgic_copy_lpi_list, right?  Can this really happen while we hold the its
> > mutex?
> 
> A disappearing LPI can only be the result of a DISCARD, which cannot
> happen, as we indeed hold the ITS lock.
> 
> > Also, we don't check this in its_sync_lpi_pending_table which would
> > indicate that we either have a bug there or are being overly careful
> > here (or should change the continue to BUG).
> 
> Let's aim for consistency. I'll drop this test.
> 
> > 
> > 
> >>  
> >>  		if (irq->target_vcpu == vcpu1)
> >>  			irq->target_vcpu = vcpu2;
> >>  
> >> -		spin_unlock(&irq->irq_lock);
> > 
> > Is it safe to modify target_vcpu without holding the irq_lock?
> 
> Unintentional regression. I'll fix that. But I wonder if there is an
> actual point in testing testing the target_vcpu here. Since we hold the
> ITS lock, we're damn sure that the affinity can't be changed, right?
> 

Ah, yes, because you filtered the list on the source VCPU already you
should be able to let go of this check.

Thanks,
-Christoffer

  reply	other threads:[~2017-08-30 20:10 UTC|newest]

Thread overview: 354+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-31 17:25 [PATCH v3 00/59] irqchip: KVM: Add support for GICv4 Marc Zyngier
2017-07-31 17:25 ` Marc Zyngier
2017-07-31 17:25 ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 01/59] genirq: Let irq_set_vcpu_affinity() iterate over hierarchy Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 02/59] irqchip/gic-v3: Add redistributor iterator Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 03/59] irqchip/gic-v3: Add VLPI/DirectLPI discovery Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 04/59] irqchip/gic-v3-its: Move LPI definitions around Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 05/59] irqchip/gic-v3-its: Add probing for VLPI properties Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 06/59] irqchip/gic-v3-its: Macro-ize its_send_single_command Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 07/59] irqchip/gic-v3-its: Implement irq_set_irqchip_state for pending state Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 08/59] irqchip/gic-v3-its: Split out property table allocation Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 09/59] irqchip/gic-v3-its: Allow use of indirect VCPU tables Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 10/59] irqchip/gic-v3-its: Split out pending table allocation Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 11/59] irqchip/gic-v3-its: Rework LPI freeing Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 12/59] irqchip/gic-v3-its: Generalize device table allocation Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 13/59] irqchip/gic-v3-its: Generalize LPI configuration Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 14/59] irqchip/gic-v4: Add management structure definitions Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 15/59] irqchip/gic-v3-its: Add GICv4 ITS command definitions Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 16/59] irqchip/gic-v3-its: Add VLPI configuration hook Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 17/59] irqchip/gic-v3-its: Add VLPI map/unmap operations Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 18/59] irqchip/gic-v3-its: Add VLPI configuration handling Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 19/59] irqchip/gic-v3-its: Add VPE domain infrastructure Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 20/59] irqchip/gic-v3-its: Add VPE irq domain allocation/teardown Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25 ` [PATCH v3 21/59] irqchip/gic-v3-its: Add VPE irq domain [de]activation Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:25   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 22/59] irqchip/gic-v3-its: Add VPENDBASER/VPROPBASER accessors Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 23/59] irqchip/gic-v3-its: Add VPE scheduling Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 24/59] irqchip/gic-v3-its: Add VPE invalidation hook Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 25/59] irqchip/gic-v3-its: Add VPE affinity changes Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 26/59] irqchip/gic-v3-its: Add VPE interrupt masking Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 27/59] irqchip/gic-v3-its: Support VPE doorbell invalidation even when !DirectLPI Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 28/59] irqchip/gic-v3-its: Allow doorbell interrupts to be injected/cleared Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 29/59] irqchip/gic-v3-its: Set implementation defined bit to enable VLPIs Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 30/59] irqchip/gic-v4: Add per-VM VPE domain creation Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 31/59] irqchip/gic-v4: Add VPE command interface Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 32/59] irqchip/gic-v4: Add VLPI configuration interface Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 33/59] irqchip/gic-v4: Add some basic documentation Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 34/59] irqchip/gic-v4: Enable low-level GICv4 operations Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 35/59] irqchip/gic-v3: Advertise GICv4 support to KVM Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 36/59] KVM: arm: Select ARM_GIC_V3 and ARM_GIC_V3_ITS Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-26 19:49   ` Christoffer Dall
2017-08-26 19:49     ` Christoffer Dall
2017-08-26 19:49     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 37/59] KVM: arm/arm64: vgic: Move kvm_vgic_destroy call around Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-26 19:49   ` Christoffer Dall
2017-08-26 19:49     ` Christoffer Dall
2017-08-26 19:49     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 38/59] KVM: arm/arm64: vITS: Add MSI translation helpers Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-26 19:49   ` Christoffer Dall
2017-08-26 19:49     ` Christoffer Dall
2017-08-26 19:49     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 39/59] KVM: arm/arm64: GICv4: Add property field and per-VM predicate Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-26 19:49   ` Christoffer Dall
2017-08-26 19:49     ` Christoffer Dall
2017-08-26 19:49     ` Christoffer Dall
2017-08-30  9:46     ` Marc Zyngier
2017-08-30  9:46       ` Marc Zyngier
2017-08-30  9:46       ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 40/59] KVM: arm/arm64: GICv4: Add init/teardown of the per-VM vPE irq domain Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-26 19:49   ` Christoffer Dall
2017-08-26 19:49     ` Christoffer Dall
2017-08-26 19:49     ` Christoffer Dall
2017-08-30  9:50     ` Marc Zyngier
2017-08-30  9:50       ` Marc Zyngier
2017-08-30  9:50       ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 41/59] KVM: arm/arm64: GICv4: Wire mapping/unmapping of VLPIs in VFIO irq bypass Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-26 19:48   ` Christoffer Dall
2017-08-26 19:48     ` Christoffer Dall
2017-08-26 19:48     ` Christoffer Dall
2017-08-30  9:42     ` Marc Zyngier
2017-08-30  9:42       ` Marc Zyngier
2017-08-30  9:42       ` Marc Zyngier
2017-08-30 10:20       ` Auger Eric
2017-08-30 10:20         ` Auger Eric
2017-08-30 10:20         ` Auger Eric
2017-08-30 10:42         ` Marc Zyngier
2017-08-30 10:42           ` Marc Zyngier
2017-08-30 10:42           ` Marc Zyngier
2017-08-30 12:54           ` Auger Eric
2017-08-30 12:54             ` Auger Eric
2017-08-30 12:54             ` Auger Eric
2017-08-30 10:28     ` Marc Zyngier
2017-08-30 10:28       ` Marc Zyngier
2017-08-30 10:28       ` Marc Zyngier
2017-08-30 11:46       ` Christoffer Dall
2017-08-30 11:46         ` Christoffer Dall
2017-08-30 11:46         ` Christoffer Dall
2017-08-30 12:53         ` Marc Zyngier
2017-08-30 12:53           ` Marc Zyngier
2017-08-30 12:53           ` Marc Zyngier
2017-08-30 19:59           ` Christoffer Dall
2017-08-30 19:59             ` Christoffer Dall
2017-08-30 19:59             ` Christoffer Dall
2017-08-31 10:24             ` Marc Zyngier
2017-08-31 10:24               ` Marc Zyngier
2017-08-31 10:24               ` Marc Zyngier
2017-08-31 12:36               ` Christoffer Dall
2017-08-31 12:36                 ` Christoffer Dall
2017-08-31 12:36                 ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 42/59] KVM: arm/arm64: GICv4: Handle INT command applied to a VLPI Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 43/59] KVM: arm/arm64: GICv4: Unmap VLPI when freeing an LPI Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-30 11:03     ` Marc Zyngier
2017-08-30 11:03       ` Marc Zyngier
2017-08-30 11:03       ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 44/59] KVM: arm/arm64: GICv4: Handle MOVI applied to a VLPI Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-30 14:08     ` Marc Zyngier
2017-08-30 14:08       ` Marc Zyngier
2017-08-30 14:08       ` Marc Zyngier
2017-08-30 20:04       ` Christoffer Dall
2017-08-30 20:04         ` Christoffer Dall
2017-08-30 20:04         ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 45/59] KVM: arm/arm64: GICv4: Handle CLEAR " Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 46/59] KVM: arm/arm64: GICv4: Handle MOVALL applied to a vPE Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-30 14:46     ` Marc Zyngier
2017-08-30 14:46       ` Marc Zyngier
2017-08-30 14:46       ` Marc Zyngier
2017-08-30 20:10       ` Christoffer Dall [this message]
2017-08-30 20:10         ` Christoffer Dall
2017-08-30 20:10         ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 47/59] KVM: arm/arm64: GICv4: Propagate property updates to VLPIs Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 48/59] KVM: arm/arm64: GICv4: Handle INVALL applied to a vPE Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 49/59] KVM: arm/arm64: GICv4: Propagate VLPI properties at map time Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-30 14:56     ` Marc Zyngier
2017-08-30 14:56       ` Marc Zyngier
2017-08-30 14:56       ` Marc Zyngier
2017-08-30 20:12       ` Christoffer Dall
2017-08-30 20:12         ` Christoffer Dall
2017-08-30 20:12         ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 50/59] KVM: arm/arm64: GICv4: Use pending_last as a scheduling hint Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 51/59] KVM: arm/arm64: GICv4: Add doorbell interrupt handling Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-04  7:44   ` Marc Zyngier
2017-08-04  7:44     ` Marc Zyngier
2017-08-04  7:44     ` Marc Zyngier
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18       ` Christoffer Dall
2017-08-28 18:18       ` Christoffer Dall
2017-08-30 10:31       ` Andrew Jones
2017-08-30 10:31         ` Andrew Jones
2017-08-30 10:31         ` Andrew Jones
2017-08-30 11:55         ` Christoffer Dall
2017-08-30 11:55           ` Christoffer Dall
2017-08-30 11:55           ` Christoffer Dall
2017-08-30 12:28           ` Andrew Jones
2017-08-30 12:28             ` Andrew Jones
2017-08-30 12:28             ` Andrew Jones
2017-08-31 12:18       ` Marc Zyngier
2017-08-31 12:18         ` Marc Zyngier
2017-08-31 12:18         ` Marc Zyngier
2017-08-31 12:41         ` Christoffer Dall
2017-08-31 12:41           ` Christoffer Dall
2017-08-31 12:41           ` Christoffer Dall
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-30 15:36     ` Marc Zyngier
2017-08-30 15:36       ` Marc Zyngier
2017-08-30 15:36       ` Marc Zyngier
2017-08-30 20:58       ` Christoffer Dall
2017-08-30 20:58         ` Christoffer Dall
2017-08-30 20:58         ` Christoffer Dall
2017-08-31  8:19         ` Marc Zyngier
2017-08-31  8:19           ` Marc Zyngier
2017-08-31  8:19           ` Marc Zyngier
2017-09-06  9:06   ` Shannon Zhao
2017-09-06  9:06     ` Shannon Zhao
2017-09-06  9:06     ` Shannon Zhao
2017-07-31 17:26 ` [PATCH v3 52/59] KVM: arm/arm64: GICv4: Use the doorbell interrupt as an unblocking source Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:19   ` Christoffer Dall
2017-08-28 18:19     ` Christoffer Dall
2017-08-28 18:19     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 53/59] KVM: arm/arm64: GICv4: Hook vPE scheduling into vgic flush/sync Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:17   ` Christoffer Dall
2017-08-28 18:17     ` Christoffer Dall
2017-08-28 18:17     ` Christoffer Dall
2017-08-30  9:59     ` Marc Zyngier
2017-08-30  9:59       ` Marc Zyngier
2017-08-30  9:59       ` Marc Zyngier
2017-08-30 11:56       ` Christoffer Dall
2017-08-30 11:56         ` Christoffer Dall
2017-08-30 11:56         ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 54/59] KVM: arm/arm64: GICv4: Enable virtual cpuif if VLPIs can be delivered Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:20   ` Christoffer Dall
2017-08-28 18:20     ` Christoffer Dall
2017-08-28 18:20     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 55/59] KVM: arm/arm64: GICv4: Enable VLPI support Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:25   ` Christoffer Dall
2017-08-28 18:25     ` Christoffer Dall
2017-08-28 18:25     ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 56/59] KVM: arm/arm64: GICv4: Prevent heterogenous systems from using GICv4 Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:35   ` Christoffer Dall
2017-08-28 18:35     ` Christoffer Dall
2017-08-28 18:35     ` Christoffer Dall
2017-08-30 16:03     ` Marc Zyngier
2017-08-30 16:03       ` Marc Zyngier
2017-08-30 16:03       ` Marc Zyngier
2017-08-30 21:00       ` Christoffer Dall
2017-08-30 21:00         ` Christoffer Dall
2017-08-30 21:00         ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 57/59] KVM: arm/arm64: GICv4: Theory of operations Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-08-28 18:18   ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-28 18:18     ` Christoffer Dall
2017-08-30 11:30     ` Marc Zyngier
2017-08-30 11:30       ` Marc Zyngier
2017-08-30 11:30       ` Marc Zyngier
2017-08-30 11:58       ` Christoffer Dall
2017-08-30 11:58         ` Christoffer Dall
2017-08-30 11:58         ` Christoffer Dall
2017-07-31 17:26 ` [PATCH v3 58/59] irqchip/gic-v3-its: Pass its_node pointer to each command bulder Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26 ` [PATCH v3 59/59] irqchip/gic-v3-its: Workaround Huawei D05 redistributor addressing Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier
2017-07-31 17:26   ` Marc Zyngier

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=20170830201036.GL24522@cbox \
    --to=cdall@linaro.org \
    --cc=christoffer.dall@linaro.org \
    --cc=eric.auger@redhat.com \
    --cc=jason@lakedaemon.net \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=shankerd@codeaurora.org \
    --cc=tglx@linutronix.de \
    /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.