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: [PATCH v2 09/10] irqchip: ti-sci-inta: Add support for Interrupt Aggregator driver
Date: Thu, 01 Nov 2018 11:15:51 +0000	[thread overview]
Message-ID: <8636slf3q0.wl-marc.zyngier@arm.com> (raw)
In-Reply-To: <f7b6d570-a8f4-6f8b-7995-eac69fef8fa1@ti.com>

Hi Peter,

On Thu, 01 Nov 2018 09:14:15 +0000,
Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
> 
> Hi Marc,
> 
> On 11/1/18 11:00 AM, Marc Zyngier wrote:
> > On Thu, 01 Nov 2018 07:55:12 +0000,
> > Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
> >>
> >> Lokesh,
> >>
> >> On 10/29/18 3:04 PM, Lokesh Vutla wrote:
> >>>>> With the above information, linux should send a message to
> >>>>> system-controller using TISCI protocol. After policing the given
> >>>>> information, system-controller does the following:
> >>>>> - Attaches the interrupt(INTA input) to the device resource index
> >>>>> - Muxes the interrupt(INTA input) to corresponding vint(INTA output)
> >>>>> - Muxes the vint(INTR input) to GIC irq(INTR output).
> >>>>
> >>>> Isn't there a 1:1 mapping between *used* INTR inputs and outputs?
> >>>> Since INTR is a router, there is no real muxing. I assume that the
> >>>> third point above is just a copy-paste error.
> >>>
> >>> Right, my bad. INTR is just a router and no read muxing.
> >>
> >> INTR can mux M interrupt inputs to N interrupt outputs.
> >> One selects which interrupt input is outputted on the given interrupt
> >> output.
> >> It is perfectly valid (but not sane) to select the same interrupt input
> >> to be routed to _all_ interrupt output for example.
> >>
> >> Not sure if we are going to use this for anything but 1:1 mapping, but
> >> might worth keeping in mind...
> > 
> > It's not obvious how you'd use this "feature". Interrupt replicator,
> > should one of the output be tied to another part of the system? Or
> > maybe that's just the result of reusing some generic block...
> 
> I think the intention is that different virtualized OS would got
> assigned with different range of NAVSS GIC irqs and there might be a
> case when more than one virtualized environment need to get a GIC irq
> for the same virt. Timer interrupts comes to mind first, but there could
> be other cases when the same virt should trigger on multiple GIC line.

That would be strange. SPIs seen by a guest are always virtual, and
the hypervisor must handle the physical interrupt to inject the
virtual counterpart. By duplicating the interrupt, you double the
overhead at the hypervisor level. It would be much cheaper to just
inject the interrupt twice.

On top of that, this only works for edge interrupts, and breaks badly
for level signalling: who talks to the device to lower the line?

Thanks,

	M.

-- 
Jazz is not dead, it just smell funny.

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <marc.zyngier@arm.com>
To: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Nishanth Menon <nm@ti.com>,
	Device Tree Mailing List <devicetree@vger.kernel.org>,
	Grygorii Strashko <grygorii.strashko@ti.com>,
	jason@lakedaemon.net, Lokesh Vutla <lokeshvutla@ti.com>,
	Sekhar Nori <nsekhar@ti.com>,
	linux-kernel@vger.kernel.org, Tero Kristo <t-kristo@ti.com>,
	Rob Herring <robh+dt@kernel.org>,
	Santosh Shilimkar <ssantosh@kernel.org>,
	tglx@linutronix.de,
	Linux ARM Mailing List <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 09/10] irqchip: ti-sci-inta: Add support for Interrupt Aggregator driver
Date: Thu, 01 Nov 2018 11:15:51 +0000	[thread overview]
Message-ID: <8636slf3q0.wl-marc.zyngier@arm.com> (raw)
In-Reply-To: <f7b6d570-a8f4-6f8b-7995-eac69fef8fa1@ti.com>

Hi Peter,

On Thu, 01 Nov 2018 09:14:15 +0000,
Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
> 
> Hi Marc,
> 
> On 11/1/18 11:00 AM, Marc Zyngier wrote:
> > On Thu, 01 Nov 2018 07:55:12 +0000,
> > Peter Ujfalusi <peter.ujfalusi@ti.com> wrote:
> >>
> >> Lokesh,
> >>
> >> On 10/29/18 3:04 PM, Lokesh Vutla wrote:
> >>>>> With the above information, linux should send a message to
> >>>>> system-controller using TISCI protocol. After policing the given
> >>>>> information, system-controller does the following:
> >>>>> - Attaches the interrupt(INTA input) to the device resource index
> >>>>> - Muxes the interrupt(INTA input) to corresponding vint(INTA output)
> >>>>> - Muxes the vint(INTR input) to GIC irq(INTR output).
> >>>>
> >>>> Isn't there a 1:1 mapping between *used* INTR inputs and outputs?
> >>>> Since INTR is a router, there is no real muxing. I assume that the
> >>>> third point above is just a copy-paste error.
> >>>
> >>> Right, my bad. INTR is just a router and no read muxing.
> >>
> >> INTR can mux M interrupt inputs to N interrupt outputs.
> >> One selects which interrupt input is outputted on the given interrupt
> >> output.
> >> It is perfectly valid (but not sane) to select the same interrupt input
> >> to be routed to _all_ interrupt output for example.
> >>
> >> Not sure if we are going to use this for anything but 1:1 mapping, but
> >> might worth keeping in mind...
> > 
> > It's not obvious how you'd use this "feature". Interrupt replicator,
> > should one of the output be tied to another part of the system? Or
> > maybe that's just the result of reusing some generic block...
> 
> I think the intention is that different virtualized OS would got
> assigned with different range of NAVSS GIC irqs and there might be a
> case when more than one virtualized environment need to get a GIC irq
> for the same virt. Timer interrupts comes to mind first, but there could
> be other cases when the same virt should trigger on multiple GIC line.

That would be strange. SPIs seen by a guest are always virtual, and
the hypervisor must handle the physical interrupt to inject the
virtual counterpart. By duplicating the interrupt, you double the
overhead at the hypervisor level. It would be much cheaper to just
inject the interrupt twice.

On top of that, this only works for edge interrupts, and breaks badly
for level signalling: who talks to the device to lower the line?

Thanks,

	M.

-- 
Jazz is not dead, it just smell funny.

  reply	other threads:[~2018-11-01 11:15 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-18 15:40 [PATCH v2 00/10] Add support for TISCI irqchip drivers Lokesh Vutla
2018-10-18 15:40 ` Lokesh Vutla
2018-10-18 15:40 ` Lokesh Vutla
2018-10-18 15:40 ` [PATCH v2 01/10] firmware: ti_sci: Add support to get TISCI handle using of_phandle Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40 ` [PATCH v2 02/10] firmware: ti_sci: Add support for RM core ops Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40 ` [PATCH v2 03/10] firmware: ti_sci: Add support for IRQ management Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40 ` [PATCH v2 04/10] firmware: ti_sci: Add RM mapping table for am654 Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 20:42   ` Rob Herring
2018-10-18 20:42     ` Rob Herring
2018-10-18 20:42     ` Rob Herring
2018-10-18 15:40 ` [PATCH v2 05/10] firmware: ti_sci: Add helper apis to manage resources Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40 ` [PATCH v2 06/10] dt-bindings: irqchip: Introduce TISCI Interrupt router bindings Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-25 18:45   ` Rob Herring
2018-10-25 18:45     ` Rob Herring
2018-10-26  6:38     ` Lokesh Vutla
2018-10-26  6:38       ` Lokesh Vutla
2018-10-26  6:38       ` Lokesh Vutla
2018-10-18 15:40 ` [PATCH v2 07/10] irqchip: ti-sci-intr: Add support for Interrupt Router driver Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40 ` [PATCH v2 08/10] dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40 ` [PATCH v2 09/10] irqchip: ti-sci-inta: Add support for Interrupt Aggregator driver Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-19 15:22   ` Marc Zyngier
2018-10-19 15:22     ` Marc Zyngier
2018-10-22 14:35     ` Lokesh Vutla
2018-10-22 14:35       ` Lokesh Vutla
2018-10-22 14:35       ` Lokesh Vutla
2018-10-23 13:50       ` Marc Zyngier
2018-10-23 13:50         ` Marc Zyngier
2018-10-23 13:50         ` Marc Zyngier
2018-10-26  6:39         ` Lokesh Vutla
2018-10-26  6:39           ` Lokesh Vutla
2018-10-26  6:39           ` Lokesh Vutla
2018-10-26 20:19           ` Lokesh Vutla
2018-10-26 20:19             ` Lokesh Vutla
2018-10-26 20:19             ` Lokesh Vutla
2018-10-28 13:31             ` Marc Zyngier
2018-10-28 13:31               ` Marc Zyngier
2018-10-28 13:31               ` Marc Zyngier
2018-10-29 13:04               ` Lokesh Vutla
2018-10-29 13:04                 ` Lokesh Vutla
2018-10-29 13:04                 ` Lokesh Vutla
2018-11-01  7:55                 ` Peter Ujfalusi
2018-11-01  7:55                   ` Peter Ujfalusi
2018-11-01  7:55                   ` Peter Ujfalusi
2018-11-01  9:00                   ` Marc Zyngier
2018-11-01  9:00                     ` Marc Zyngier
2018-11-01  9:00                     ` Marc Zyngier
2018-11-01  9:14                     ` Peter Ujfalusi
2018-11-01  9:14                       ` Peter Ujfalusi
2018-11-01  9:14                       ` Peter Ujfalusi
2018-11-01 11:15                       ` Marc Zyngier [this message]
2018-11-01 11:15                         ` Marc Zyngier
2018-11-05  8:08                 ` Lokesh Vutla
2018-11-05  8:08                   ` Lokesh Vutla
2018-11-05  8:08                   ` Lokesh Vutla
2018-11-05 15:36                   ` Marc Zyngier
2018-11-05 15:36                     ` Marc Zyngier
2018-11-05 16:20                     ` Lokesh Vutla
2018-11-05 16:20                       ` Lokesh Vutla
2018-11-05 16:20                       ` Lokesh Vutla
2018-11-05 16:44                       ` Marc Zyngier
2018-11-05 16:44                         ` Marc Zyngier
2018-11-05 17:56                         ` Lokesh Vutla
2018-11-05 17:56                           ` Lokesh Vutla
2018-11-05 17:56                           ` Lokesh Vutla
2018-10-31 16:39         ` Grygorii Strashko
2018-10-31 16:39           ` Grygorii Strashko
2018-10-31 16:39           ` Grygorii Strashko
2018-10-31 18:21           ` Marc Zyngier
2018-10-31 18:21             ` Marc Zyngier
2018-10-31 18:38             ` Santosh Shilimkar
2018-10-31 18:38               ` Santosh Shilimkar
2018-10-31 18:42               ` Marc Zyngier
2018-10-31 18:42                 ` Marc Zyngier
2018-10-31 18:48                 ` Santosh Shilimkar
2018-10-31 18:48                   ` Santosh Shilimkar
2018-10-31 18:48                   ` Santosh Shilimkar
2018-10-31 20:33             ` Grygorii Strashko
2018-10-31 20:33               ` Grygorii Strashko
2018-10-31 20:33               ` Grygorii Strashko
2018-11-01 14:52               ` Marc Zyngier
2018-11-01 14:52                 ` Marc Zyngier
2018-11-01 15:36                 ` Grygorii Strashko
2018-11-01 15:36                   ` Grygorii Strashko
2018-11-01 15:36                   ` Grygorii Strashko
2018-11-01  9:09             ` Peter Ujfalusi
2018-11-01  9:09               ` Peter Ujfalusi
2018-11-01  9:09               ` Peter Ujfalusi
2018-10-22 10:42   ` Peter Ujfalusi
2018-10-22 10:42     ` Peter Ujfalusi
2018-10-22 10:42     ` Peter Ujfalusi
2018-10-22 10:43     ` Peter Ujfalusi
2018-10-22 10:43       ` Peter Ujfalusi
2018-10-22 10:43       ` Peter Ujfalusi
2018-10-18 15:40 ` [PATCH v2 10/10] soc: ti: am6: Enable interrupt controller drivers Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-18 15:40   ` Lokesh Vutla
2018-10-22 20:39 ` [PATCH v2 00/10] Add support for TISCI irqchip drivers Santosh Shilimkar
2018-10-22 20:39   ` Santosh Shilimkar
2018-10-23  8:17   ` Lokesh Vutla
2018-10-23  8:17     ` Lokesh Vutla
2018-10-23  8:17     ` Lokesh Vutla
2018-10-23  8:27     ` Marc Zyngier
2018-10-23  8:27       ` Marc Zyngier
2018-10-23  8:27       ` Marc Zyngier
2018-10-23 17:34     ` Santosh Shilimkar
2018-10-23 17:34       ` Santosh Shilimkar
2018-10-26  6:39       ` Lokesh Vutla
2018-10-26  6:39         ` Lokesh Vutla
2018-10-26  6:39         ` Lokesh Vutla

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=8636slf3q0.wl-marc.zyngier@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.