public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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: Fri, 09 Dec 2011 09:22:51 +0100	[thread overview]
Message-ID: <4EE1C55B.9010708@ladisch.de> (raw)
In-Reply-To: <CAPRPZsDmbfESXov1XzOYXv6WSTFAevNwD5jyBdwGU--kffLaMQ@mail.gmail.com>

Jeroen Van den Keybus wrote:
> the ASM1083 can only be the cause if the Firewire controller is also
> on that bus.

The VT6308 is PCI, and you have only one bus.

>> It appears that some Deassert_INTx messages get lost on your system.
>> There are no indications of any other missing PCIe packets, so this
>> looks like a problem with the interrupt handling in your PCI/PCIe
>> bridge, the ASM1083 chip.
>
> Assuming this is the case, I modified the e1000 driver to explicitly
> set its IRQ line after 5 times having to send IRQ_NONE. (e1000_intr()
> code at end of this post). The result of this test is that the IRQ
> line indeed is set (in the next invocation, the ISR sees the forced
> RXT0 interrupt, clears the IRQ line and sends IRQ_HANDLED). But alas,
> the storm is not silenced at all.
>
> If the ASM108x was the problem, I suspect that explicitly raising and
> clearing the interrupt would have retriggered the INTx_Assert and
> INTx_Deassert messages ?

Yes.

> Meaning the bridge wouldn't be the problem.

It's possible that
1) the ASM1083 does not react to changes of the PCI interrupt line, or
2) the interrupt controller ignores INTx_Deassert messages.

I'm wondering what the difference between triggering an interrupt and
reloading the driver is that makes it work again.  I'd guess that
reattaching the driver reinitializes the interrupt, which would point
to 2).

> If I understand correctly, the IO-APIC is not even used in this case ?
> (IRQ requests from e1000 all going through PCIe) Or is there also
> a virtual IO-APIC monitoring Assert and Deassert messages.

All PCI interrupts (whether 'real' lines in hardware or emulated with
PCIe messages) end up at the I/O-APIC.

> Is the BIOS responsible for writing a mapping for the PCI IRQs to MSIs
> into the ASM108x ?

MSIs are edge-triggered; their message is different from the (de)assert
messages used for PCI level-triggered interrupts.

AFAIK the interrupt handling in a PCI/PCIe bridge should work
transparently, i.e., the bridge does not need to be configured by
software.

The BIOS is responsible for telling the kernel about all interrupt
mappings, and ACPI takes part in initializing the I/O-APIC.
Check if a newer BIOS exists.

> (And BTW, should the linux1394-devel still be posted ?)

Your trigger-interrupt patch would also be possible with firewire-ohci.

> I'm thinking of immediately re-enabling the irqs after they've been
> disabled in spurious.c.

You could try free_irq/request_irq, but I guess you cannot do this
directly from inside an interrupt handler.

> I also think that the following posts may refer to the same problem:
>
> http://ubuntuforums.org/showthread.php?t=1883854
> https://lkml.org/lkml/2011/6/30/197
> https://lkml.org/lkml/2011/10/14/146

That's similar symptoms, but completely different hardware.


Regards,
Clemens

  reply	other threads:[~2011-12-09  8:21 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 [this message]
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
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=4EE1C55B.9010708@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