Re: [GIT PULL] s390 patches for the 3.9-rc6

From: Martin Schwidefsky
Date: Tue Jun 25 2013 - 10:12:16 EST


On Tue, 25 Jun 2013 14:30:20 +0100
Grant Likely <grant.likely@xxxxxxxxxxxx> wrote:

> On Tue, Jun 25, 2013 at 2:11 PM, Martin Schwidefsky
> <schwidefsky@xxxxxxxxxx> wrote:
> > On Tue, 25 Jun 2013 13:42:23 +0100
> > Grant Likely <grant.likely@xxxxxxxxxxxx> wrote:
> >
> >> On Tue, Jun 25, 2013 at 1:15 PM, Martin Schwidefsky
> >> <schwidefsky@xxxxxxxxxx> wrote:
> >> > On Tue, 25 Jun 2013 13:09:51 +0100
> >> > Grant Likely <grant.likely@xxxxxxxxxxxx> wrote:
> >> >
> >> >> On Wed, Apr 3, 2013 at 4:25 PM, Martin Schwidefsky
> >> >> <schwidefsky@xxxxxxxxxx> wrote:
> >> >> > Hi Linus,
> >> >> >
> >> >> > please pull from the 'for-linus' branch of
> >> >> >
> >> >> > git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git for-linus
> >> >> >
> >> >> > to receive the following updates: Just a bunch of bugfixes.
> >> >> >
> >> >> > Heiko Carstens (4):
> >> >> > drivers/Kconfig: add several missing GENERIC_HARDIRQS dependencies
> >> >>
> >> >> Is anyone currently working on fixing this? s390 is the only
> >> >> architecture left that does not enable GENERIC_HARDIRQS. It's painful
> >> >> to keep adding dependencies on GENERIC_HARDIRQS to driver configs.
> >> >
> >> > I am working on it. The hardest part is MSI irqs for PCI. Chances are
> >> > that I get it done for the merge window of 3.12.
> >>
> >> How are you handling the MSIs? I've just been looking at some code for
> >> irq_domain to handle MSI mapping. What's the part that is getting you
> >> hung up?
> >
> > Basically a name-space thing. The current code allocates 64 interrupts numbers
> > for each PCI device, starting at 0. With GENERIC_HARDIRQS=y irq #0 is used for
> > for external interrupts, irq #1 for I/O interrupts and irq #2 for adapter
> > interrupts. The adapter interrupt handler for PCI has to scan the interrupt
> > vectors and call generic_handle_irq for the MSI interrupts starting at irq #3.
> > As I don't want to create a huge irq_desc array the number of allocatable
> > interrupts for MSI will be limited and I can not simply assign 64 interrupts
> > numbers to each device anymore.
>
> Have you looked at irq_domain? It was created to solve that exact
> problem. irq_descs can get allocated dynamically as irqs are
> requested.

That is one option I am considering. The PCI support for System z can have multiple
PCI function groups, each with up to 2048 MSI interrupts. It is quite a good match.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/