Grant Likely [off-list ref] writes:
Can you attach console output logs for each of configs above and also
with NR_IRQS=128? That might give me some clues as to which specific
code is causing the issues.
It really looks like the issue starts when irq_expand_nr_irqs is called
the first time to make nr_irqs bigger than NR_IRQS.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
On Fri, 6 Apr 2012, Andreas Schwab wrote:
Grant Likely [off-list ref] writes:
quoted
Can you attach console output logs for each of configs above and also
with NR_IRQS=128? That might give me some clues as to which specific
code is causing the issues.
It really looks like the issue starts when irq_expand_nr_irqs is called
the first time to make nr_irqs bigger than NR_IRQS.
And it looks like the irqdomain code is the real culprit.
void irq_set_virq_count(unsigned int count)
{
pr_debug("irq: Trying to set virq count to %d\n", count);
BUG_ON(count < NUM_ISA_INTERRUPTS);
if (count < NR_IRQS)
irq_virq_count = count;
}
That looks simply wrong.....
s/NR_IRQS/nr_irqs/ should do the trick.
Thanks,
tglx
On Fri, 6 Apr 2012 13:17:04 +0200 (CEST), Thomas Gleixner [off-list ref] wrote:
On Fri, 6 Apr 2012, Andreas Schwab wrote:
quoted
Grant Likely [off-list ref] writes:
quoted
Can you attach console output logs for each of configs above and also
with NR_IRQS=128? That might give me some clues as to which specific
code is causing the issues.
It really looks like the issue starts when irq_expand_nr_irqs is called
the first time to make nr_irqs bigger than NR_IRQS.
And it looks like the irqdomain code is the real culprit.
void irq_set_virq_count(unsigned int count)
{
pr_debug("irq: Trying to set virq count to %d\n", count);
BUG_ON(count < NUM_ISA_INTERRUPTS);
if (count < NR_IRQS)
irq_virq_count = count;
}
That looks simply wrong.....
s/NR_IRQS/nr_irqs/ should do the trick.
Yeah, that code is wrong and I'll fix it, but the only purpose of that
code is to support the direct mapping on hardware that has limit on
the largest irq number that it can handle. That shouldn't be the
problem here.
g.