From: Clemens Ladisch <clemens@ladisch.de>
To: Jeroen Van den Keybus <jeroen.vandenkeybus@gmail.com>
Cc: "Huang, Shane" <Shane.Huang@amd.com>,
Borislav Petkov <bp@amd64.org>,
"Nguyen, Dong" <Dong.Nguyen@amd.com>,
linux-kernel@vger.kernel.org
Subject: Re: Unhandled IRQs on AMD E-450
Date: Sat, 10 Dec 2011 18:58:50 +0100 [thread overview]
Message-ID: <4EE39DDA.4050602@ladisch.de> (raw)
In-Reply-To: <CAPRPZsBfLyWBSEO7UHc9irpKq-AhjT053BFQV=tamPYTb7SvsQ@mail.gmail.com>
Jeroen Van den Keybus wrote:
> [...]
> - CPU services the IRQ, and does at least one (slow) PCI read to have
> the device deassert its IRQ line. In practice, more PCI read/writes
> are needed, requiring the bridge to do some PCIe traffic generation.
> - Bridge sees the IRQ line trasition and signals Deassert, This
> message has only a few usecs to arrive at the I/O-APIC.
> - _However_ the CPU has by large already handled the IRQ and gets
> interrupted again before the Deassert ever gets out. The resulting PCI
> bus traffic further delays the Deassert message (due to e.g. PCIe
> transmit credit exhaustion).
>
> My idea is that if we would not immediately hammer the bridge with
> PCIe transactions, the Deassert message may eventually arrive ?
PCIe messages are somewhat ordered; posted memory writes are allowed,
but IIRC a read transaction serializes all previous and following
transactions. Assuming that all involved devices work correctly.
> Also, is there any control by Linux of the credits issued ?
I don't think these can be controlled by software. The hardware is
supposed to get them correct.
> I therefore patched the polling system by detecting a stuck IRQ
> already after 10 unserviced IRQs. Then the polling system will take
> over for 50 cycles (5 seconds), after which the IRQ is reenabled.
>
> [ 1607.941232] irq 19: nobody cared (try booting with the "irqpoll" option)
> [ 1613.040185] Reenabling IRQ.
> [ 1908.541558] irq 19: nobody cared (try booting with the "irqpoll" option)
> [ 1913.640088] Reenabling IRQ.
> [ 2319.361659] irq 19: nobody cared (try booting with the "irqpoll" option)
> [ 2324.460064] Reenabling IRQ.
> [ 2782.285470] irq 19: nobody cared (try booting with the "irqpoll" option)
> [ 2787.384222] Reenabling IRQ.
> [ 3485.689347] irq 19: nobody cared (try booting with the "irqpoll" option)
> [ 3490.788079] Reenabling IRQ.
> [ 3810.336883] irq 19: nobody cared (try booting with the "irqpoll" option)
So the IRQ _does_ get unstuck eventually; I didn't expact that.
So either the ASM1083 delays its Deassert messages, or it is just way
too slow to react to changes in its PCI interrupt line inputs.
I'd guess that you can make the pollig time shorter; a few milliseconds
should be enough.
Your patch might be useful to others afflicted with this chip. Could
you publish it?
Regards,
Clemens
next prev parent reply other threads:[~2011-12-10 17:59 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-29 21:44 Unhandled IRQs on AMD E-450 Jeroen Van den Keybus
2011-11-30 8:30 ` Clemens Ladisch
2011-11-30 15:44 ` Borislav Petkov
2011-12-01 8:01 ` Huang, Shane
2011-12-03 20:36 ` Jeroen Van den Keybus
2011-12-04 12:48 ` Clemens Ladisch
2011-12-04 13:36 ` Jeroen Van den Keybus
2011-12-04 13:54 ` Jeroen Van den Keybus
2011-12-04 14:08 ` Jeroen Van den Keybus
2011-12-04 15:06 ` Jeroen Van den Keybus
2011-12-04 16:59 ` Clemens Ladisch
2011-12-06 0:06 ` Jeroen Van den Keybus
2011-12-08 11:33 ` Jeroen Van den Keybus
2011-12-08 12:45 ` Clemens Ladisch
2011-12-08 21:27 ` Jeroen Van den Keybus
2011-12-09 8:22 ` Clemens Ladisch
2011-12-09 11:17 ` Jeroen Van den Keybus
2011-12-09 12:55 ` Clemens Ladisch
2011-12-10 12:10 ` Jeroen Van den Keybus
2011-12-10 17:58 ` Clemens Ladisch [this message]
2011-12-11 15:28 ` Jeroen Van den Keybus
[not found] <fa.CZQqvHf3CBfYWzhSDPNOWxTTD9w@ifi.uio.no>
[not found] ` <fa.Vmg5vDod2/oKvwyy9BcalhoT+Lo@ifi.uio.no>
2012-04-25 8:35 ` andymatei
2012-04-25 8:48 ` Clemens Ladisch
2012-04-27 8:22 ` Borislav Petkov
2012-04-27 8:29 ` Andrei Matei
2012-04-27 11:46 ` Jeroen Van den Keybus
2012-04-27 13:06 ` Josh Boyer
2012-04-27 13:28 ` Jeroen Van den Keybus
2012-04-27 13:49 ` Josh Boyer
2012-04-30 8:29 ` Jeroen Van den Keybus
2012-04-30 9:57 ` Clemens Ladisch
2012-04-30 10:41 ` Jeroen Van den Keybus
2012-04-30 12:47 ` Clemens Ladisch
2012-05-29 22:20 ` Grant Likely
2012-04-30 10:21 ` Borislav Petkov
2012-04-30 11:35 ` Jeroen Van den Keybus
2012-05-29 23:36 ` Grant Likely
2012-05-30 0:07 ` Thomas Gleixner
2012-05-30 10:44 ` Borislav Petkov
[not found] <fa.Tzg9rJm1oEMGIL8eap99R7gLU4Q@ifi.uio.no>
[not found] ` <fa.Yw7gRhZrXlfCxofC1BHK22C+oTk@ifi.uio.no>
[not found] ` <fa.l7CBcHbzr+l317AuKP87w9mccUk@ifi.uio.no>
[not found] ` <fa.VXfk4ts2TBVKqgBQtfGn6RQHemg@ifi.uio.no>
2012-04-25 8:48 ` andymatei
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=4EE39DDA.4050602@ladisch.de \
--to=clemens@ladisch.de \
--cc=Dong.Nguyen@amd.com \
--cc=Shane.Huang@amd.com \
--cc=bp@amd64.org \
--cc=jeroen.vandenkeybus@gmail.com \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox