All of lore.kernel.org
 help / color / mirror / Atom feed
From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 3/9] irqchip: GIC: Convert to EOImode == 1
Date: Wed, 25 Jun 2014 15:46:43 +0100	[thread overview]
Message-ID: <53AAE0D3.8030008@arm.com> (raw)
In-Reply-To: <CAFEAcA_naeGVc+Rsec=Ds6Lzf345nzFj3Wg2RWY-6LWYv3euNQ@mail.gmail.com>

On 25/06/14 15:06, Peter Maydell wrote:
> On 25 June 2014 10:28, Marc Zyngier <marc.zyngier@arm.com> wrote:
>> For this case, the GIC architecture provides EOImode == 1, where:
>> - A write to the EOI register drops the priority of the interrupt and leaves
>> it active. Other interrupts at the same priority level can now be taken,
>> but the active interrupt cannot be taken again
>> - A write to the DIR marks the interrupt as inactive, meaning it can
>> now be taken again.
>>
>> We only enable this feature when booted in HYP mode. Also, as most device
>> trees are broken (they report the CPU interface size to be 4kB, while
>> the GICv2 CPU interface size is 8kB), output a warning if we're booted
>> in HYP mode, and disable the feature.
> 
> Does that mean you guarantee not to write to the DEACTIVATE register
> if not booted in Hyp mode? I ask because QEMU's GIC emulation doesn't
> emulate that register, so it would be useful to know if this patch
> means newer kernels are going to fall over under TCG QEMU...

So far, I only plan to support it when booted in HYP. But it may be that
the split prio-drop/deactivate is also beneficial to threaded
interrupts, saving the writes to the distributor to mask/unmask. That
would require to be a bit more subtle in identifying a GICv2
implementation (DT binding, probably).

	M.
-- 
Jazz is not dead. It just smells funny...

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <marc.zyngier@arm.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>,
	arm-mail-list <linux-arm-kernel@lists.infradead.org>,
	lkml - Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Catalin Marinas <Catalin.Marinas@arm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Will Deacon <Will.Deacon@arm.com>,
	Christoffer Dall <christoffer.dall@linaro.org>,
	Eric Auger <eric.auger@linaro.org>
Subject: Re: [RFC PATCH 3/9] irqchip: GIC: Convert to EOImode == 1
Date: Wed, 25 Jun 2014 15:46:43 +0100	[thread overview]
Message-ID: <53AAE0D3.8030008@arm.com> (raw)
In-Reply-To: <CAFEAcA_naeGVc+Rsec=Ds6Lzf345nzFj3Wg2RWY-6LWYv3euNQ@mail.gmail.com>

On 25/06/14 15:06, Peter Maydell wrote:
> On 25 June 2014 10:28, Marc Zyngier <marc.zyngier@arm.com> wrote:
>> For this case, the GIC architecture provides EOImode == 1, where:
>> - A write to the EOI register drops the priority of the interrupt and leaves
>> it active. Other interrupts at the same priority level can now be taken,
>> but the active interrupt cannot be taken again
>> - A write to the DIR marks the interrupt as inactive, meaning it can
>> now be taken again.
>>
>> We only enable this feature when booted in HYP mode. Also, as most device
>> trees are broken (they report the CPU interface size to be 4kB, while
>> the GICv2 CPU interface size is 8kB), output a warning if we're booted
>> in HYP mode, and disable the feature.
> 
> Does that mean you guarantee not to write to the DEACTIVATE register
> if not booted in Hyp mode? I ask because QEMU's GIC emulation doesn't
> emulate that register, so it would be useful to know if this patch
> means newer kernels are going to fall over under TCG QEMU...

So far, I only plan to support it when booted in HYP. But it may be that
the split prio-drop/deactivate is also beneficial to threaded
interrupts, saving the writes to the distributor to mask/unmask. That
would require to be a bit more subtle in identifying a GICv2
implementation (DT binding, probably).

	M.
-- 
Jazz is not dead. It just smells funny...

  reply	other threads:[~2014-06-25 14:46 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-25  9:28 [RFC PATCH 0/9] ARM: Forwarding physical interrupts to a guest VM Marc Zyngier
2014-06-25  9:28 ` Marc Zyngier
2014-06-25  9:28 ` [RFC PATCH 1/9] genirq: Add IRQD_IRQ_FORWARDED flag and accessors Marc Zyngier
2014-06-25  9:28   ` Marc Zyngier
2014-06-25  9:28 ` [RFC PATCH 2/9] genirq: Allow the state of a forwarded irq to be save/restored Marc Zyngier
2014-06-25  9:28   ` Marc Zyngier
2014-06-27 13:10   ` Will Deacon
2014-06-27 13:10     ` Will Deacon
2014-07-07  8:40     ` Marc Zyngier
2014-07-07  8:40       ` Marc Zyngier
2014-06-25  9:28 ` [RFC PATCH 3/9] irqchip: GIC: Convert to EOImode == 1 Marc Zyngier
2014-06-25  9:28   ` Marc Zyngier
2014-06-25 12:50   ` Rob Herring
2014-06-25 12:50     ` Rob Herring
2014-06-25 13:03     ` Marc Zyngier
2014-06-25 13:03       ` Marc Zyngier
2014-06-25 13:18       ` Rob Herring
2014-06-25 13:18         ` Rob Herring
2014-06-25 13:56   ` Anup Patel
2014-06-25 13:56     ` Anup Patel
2014-06-25 14:03     ` Ian Campbell
2014-06-25 14:03       ` Ian Campbell
2014-06-25 14:31       ` Marc Zyngier
2014-06-25 14:31         ` Marc Zyngier
2014-06-25 14:08     ` Rob Herring
2014-06-25 14:08       ` Rob Herring
2014-06-25 14:24     ` Marc Zyngier
2014-06-25 14:24       ` Marc Zyngier
2014-06-25 14:27       ` Ian Campbell
2014-06-25 14:27         ` Ian Campbell
2014-06-25 20:14     ` Joel Schopp
2014-06-25 20:14       ` Joel Schopp
2014-06-30 19:09     ` Stefano Stabellini
2014-06-30 19:09       ` Stefano Stabellini
2014-07-01  8:24       ` Marc Zyngier
2014-07-01  8:24         ` Marc Zyngier
2014-07-01 16:34         ` Stefano Stabellini
2014-07-01 16:34           ` Stefano Stabellini
2014-07-01 16:42           ` Marc Zyngier
2014-07-01 16:42             ` Marc Zyngier
2014-06-25 14:06   ` Peter Maydell
2014-06-25 14:06     ` Peter Maydell
2014-06-25 14:46     ` Marc Zyngier [this message]
2014-06-25 14:46       ` Marc Zyngier
2014-08-06 11:30     ` Christoffer Dall
2014-08-06 11:30       ` Christoffer Dall
2014-07-25 12:42   ` Eric Auger
2014-07-25 12:42     ` Eric Auger
2014-06-25  9:28 ` [RFC PATCH 4/9] irqchip: GIC: add support for forwarded interrupts Marc Zyngier
2014-06-25  9:28   ` Marc Zyngier
2014-06-27 13:17   ` Will Deacon
2014-06-27 13:17     ` Will Deacon
2014-07-07 10:43     ` Marc Zyngier
2014-07-07 10:43       ` Marc Zyngier
2014-08-06 11:30   ` Christoffer Dall
2014-08-06 11:30     ` Christoffer Dall
2014-06-25  9:28 ` [RFC PATCH 5/9] irqchip: GICv3: Convert to EOImode == 1 Marc Zyngier
2014-06-25  9:28   ` Marc Zyngier
2014-06-25  9:28 ` [RFC PATCH 6/9] irqchip: GICv3: add support for forwarded interrupts Marc Zyngier
2014-06-25  9:28   ` Marc Zyngier
2014-06-25  9:28 ` [RFC PATCH 7/9] KVM: arm: vgic: allow dynamic mapping of physical/virtual interrupts Marc Zyngier
2014-06-25  9:28   ` Marc Zyngier
2014-08-03  9:48   ` Eric Auger
2014-08-03  9:48     ` Eric Auger
2014-08-04 13:13     ` Marc Zyngier
2014-08-04 13:13       ` Marc Zyngier
2014-08-07 15:47       ` Eric Auger
2014-08-07 15:47         ` Eric Auger
2014-08-11  8:01         ` Christoffer Dall
2014-08-11  8:01           ` Christoffer Dall
2014-08-11 13:22           ` Eric Auger
2014-08-11 13:22             ` Eric Auger
2014-06-25  9:28 ` [RFC PATCH 8/9] arm: KVM: timer: move the timer switch into the non-preemptible section Marc Zyngier
2014-06-25  9:28   ` Marc Zyngier
2014-06-25  9:28 ` [RFC PATCH 9/9] KVM: arm: timer: make the interrupt state part of the timer state Marc Zyngier
2014-06-25  9:28   ` Marc Zyngier
2014-06-25 14:52 ` [RFC PATCH 0/9] ARM: Forwarding physical interrupts to a guest VM Eric Auger
2014-06-25 14:52   ` Eric Auger
2014-06-26  9:31   ` Marc Zyngier
2014-06-26  9:31     ` Marc Zyngier
2014-06-26 12:58     ` Eric Auger
2014-06-26 12:58       ` Eric Auger
2014-06-26 14:12       ` Marc Zyngier
2014-06-26 14:12         ` 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=53AAE0D3.8030008@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=linux-arm-kernel@lists.infradead.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.