mbox series

[net-next,00/13] net: ipa: constrain GSI interrupts

Message ID 20201105181407.8006-1-elder@linaro.org
Headers show
Series net: ipa: constrain GSI interrupts | expand

Message

Alex Elder Nov. 5, 2020, 6:13 p.m. UTC
The goal of this series is to more tightly control when GSI
interrupts are enabled.  This is a long-ish series, so I'll
describe it in parts.

The first patch is actually unrelated...  I forgot to include
it in my previous series (which exposed the GSI layer to the
IPA version).  It is a trivial comments-only update patch.

The second patch defers registering the GSI interrupt handler
until *after* all of the resources that handler touches have
been initialized.  In practice, we don't see this interrupt
that early, but this precludes an obvious problem.

The next two patches are simple changes.  The first just
trivially renames a field.  The second switches from using
constant mask values to using an enumerated type of bit
positions to represent each GSI interrupt type.

The rest implement the "real work."  First, all interrupts
are disabled at initialization time.  Next, we keep track of
a bitmask of enabled GSI interrupt types, updating it each
time we enable or disable one of them.  From there we have
a set of patches that one-by-one enable each interrupt type
only during the period it is required.  This includes allowing
a channel to generate IEOB interrupts only when it has been
enabled.  And finally, the last patch simplifies some code
now that all GSI interrupt types are handled uniformly.

					-Alex

Alex Elder (13):
  net: ipa: refer to IPA versions, not GSI

  net: ipa: request GSI IRQ later

  net: ipa: rename gsi->event_enable_bitmap
  net: ipa: define GSI interrupt types with an enum

  net: ipa: disable all GSI interrupt types initially
  net: ipa: cache last-saved GSI IRQ enabled type
  net: ipa: only enable GSI channel control IRQs when needed
  net: ipa: only enable GSI event control IRQs when needed
  net: ipa: only enable generic command completion IRQ when needed
  net: ipa: only enable GSI IEOB IRQs when needed
  net: ipa: explicitly disallow inter-EE interrupts
  net: ipa: only enable GSI general IRQs when needed
  net: ipa: pass a value to gsi_irq_type_update()

 drivers/net/ipa/gsi.c     | 257 +++++++++++++++++++++++++++-----------
 drivers/net/ipa/gsi.h     |   7 +-
 drivers/net/ipa/gsi_reg.h |  31 +++--
 3 files changed, 205 insertions(+), 90 deletions(-)

-- 
2.20.1

Comments

patchwork-bot+netdevbpf@kernel.org Nov. 7, 2020, 11:50 p.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Thu,  5 Nov 2020 12:13:54 -0600 you wrote:
> The goal of this series is to more tightly control when GSI

> interrupts are enabled.  This is a long-ish series, so I'll

> describe it in parts.

> 

> The first patch is actually unrelated...  I forgot to include

> it in my previous series (which exposed the GSI layer to the

> IPA version).  It is a trivial comments-only update patch.

> 

> [...]


Here is the summary with links:
  - [net-next,01/13] net: ipa: refer to IPA versions, not GSI
    https://git.kernel.org/netdev/net-next/c/4a04d65c964e
  - [net-next,02/13] net: ipa: request GSI IRQ later
    https://git.kernel.org/netdev/net-next/c/0b8d67610845
  - [net-next,03/13] net: ipa: rename gsi->event_enable_bitmap
    https://git.kernel.org/netdev/net-next/c/a054539db196
  - [net-next,04/13] net: ipa: define GSI interrupt types with an enum
    https://git.kernel.org/netdev/net-next/c/f9b28804ab50
  - [net-next,05/13] net: ipa: disable all GSI interrupt types initially
    https://git.kernel.org/netdev/net-next/c/97eb94c8c790
  - [net-next,06/13] net: ipa: cache last-saved GSI IRQ enabled type
    https://git.kernel.org/netdev/net-next/c/3ca97ffd984c
  - [net-next,07/13] net: ipa: only enable GSI channel control IRQs when needed
    https://git.kernel.org/netdev/net-next/c/b054d4f9eb4b
  - [net-next,08/13] net: ipa: only enable GSI event control IRQs when needed
    https://git.kernel.org/netdev/net-next/c/b4175f8731f7
  - [net-next,09/13] net: ipa: only enable generic command completion IRQ when needed
    https://git.kernel.org/netdev/net-next/c/d6c9e3f506ae
  - [net-next,10/13] net: ipa: only enable GSI IEOB IRQs when needed
    https://git.kernel.org/netdev/net-next/c/06c8632833c2
  - [net-next,11/13] net: ipa: explicitly disallow inter-EE interrupts
    https://git.kernel.org/netdev/net-next/c/46f748ccaf01
  - [net-next,12/13] net: ipa: only enable GSI general IRQs when needed
    https://git.kernel.org/netdev/net-next/c/352f26a886d8
  - [net-next,13/13] net: ipa: pass a value to gsi_irq_type_update()
    https://git.kernel.org/netdev/net-next/c/8194be79fbbc

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html