From: Trent Piepho <tpiepho@impinj.com>
To: "lorenzo.pieralisi@arm.com" <lorenzo.pieralisi@arm.com>
Cc: "jpinto@synopsys.com" <jpinto@synopsys.com>,
"jingoohan1@gmail.com" <jingoohan1@gmail.com>,
"gustavo.pimentel@synopsys.com" <gustavo.pimentel@synopsys.com>,
"faiz_abbas@ti.com" <faiz_abbas@ti.com>,
"stable@vger.kernel.org" <stable@vger.kernel.org>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"bhelgaas@google.com" <bhelgaas@google.com>,
"vigneshr@ti.com" <vigneshr@ti.com>,
"marc.zyngier@arm.com" <marc.zyngier@arm.com>
Subject: Re: [PATCH] PCI: dwc: Fix interrupt race in when handling MSI
Date: Tue, 6 Nov 2018 18:59:15 +0000 [thread overview]
Message-ID: <1541530754.30311.254.camel@impinj.com> (raw)
In-Reply-To: <20181106145347.GB19060@e107981-ln.cambridge.arm.com>
On Tue, 2018-11-06 at 14:53 +0000, Lorenzo Pieralisi wrote:
>
>
> Not sure why (5) is not used in your lists, I assume because you want
> to highlight the race condition with the jump from 4 to 6 (or maybe
> you do not like number 5 :), just curious).
It's because I removed a step and I'm used to rst docs where it
renumbers automatically.
>
> > The observant will notice that point 4 present the opportunity for the
> > SoC's interrupt controller to lose the interrupt in the same manner as
> > the bug in this driver. The driver for that interrupt controller will
> > be written to properly deal with this. In some cases the hardware
> > supports an EOI concept, where the 2nd IRQ is masked and internally
> > queued in the hardware, to be re-raised at EOI in step 7. In other
> > cases the IRQ will be unmasked and re-raised at step 4, but the kernel
> > will see the handler is INPROGRESS and not re-invoke it, and instead set
> > a PENDING flag, which causes the handler to re-run at step 7.
> >
> > [1]
> >
> > Fixes: 8c934095fa2f ("PCI: dwc: Clear MSI interrupt status after it is handled, not before")
>
> I have two questions:
>
> - Commit 8c934095fa2f has been in the kernel for a year and no
> regression was reported. It was assumed to fix a problem so before
> reverting it I want to make sure we are not breaking anything else.
There have been reports. Vignesh reported this some time ago. Also
see https://lkml.org/lkml/2018/11/2/55, the author indicated to me that
it was the caused by this problem after I pointed him to my patch. And
I've reported it now too.
We only updated to a kernel with the regression a few months ago. I
think imx6/7 systems don't update their kernels that quickly. Usually
not running a mainstream distro with automatic updates. And there are
probably a lot of people using the NXP vendor kernel, which has a ton
of unmerged patches, and so they don't see this regression yet.
> - Your reasoning seems correct but I would pick Marc's brain on this
> because I want to understand if what this patch does is what IRQ core
> expects it to do, especially in relation to the IRQ chaining you
> are mentioning.
I've traced this through the ARM arch code and used our custom PCI
device to generate interrupts in all the race windows. It does work as
I say, though I can't say this it how it's supposed to work.
prev parent reply other threads:[~2018-11-06 19:08 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-27 0:00 [PATCH] PCI: dwc: Fix interrupt race in when handling MSI Trent Piepho
2018-11-05 10:28 ` Vignesh R
2018-11-05 12:08 ` Gustavo Pimentel
2018-11-06 14:53 ` Lorenzo Pieralisi
2018-11-06 16:00 ` Marc Zyngier
2018-11-06 19:40 ` Trent Piepho
2018-11-07 11:07 ` Lorenzo Pieralisi
2018-11-07 12:58 ` Gustavo Pimentel
2018-11-07 18:41 ` Marc Zyngier
2018-11-07 20:17 ` Trent Piepho
2018-11-08 9:49 ` Marc Zyngier
2018-11-08 19:49 ` Trent Piepho
2018-11-09 10:13 ` Lorenzo Pieralisi
2018-11-09 17:17 ` Vignesh R
2018-11-09 11:34 ` Marc Zyngier
2018-11-09 18:53 ` Trent Piepho
2018-11-13 0:41 ` Gustavo Pimentel
2018-11-13 1:18 ` Trent Piepho
2018-11-13 10:36 ` Lorenzo Pieralisi
2018-11-13 18:55 ` Trent Piepho
2018-11-13 14:40 ` Marc Zyngier
2018-11-07 12:57 ` Gustavo Pimentel
2018-11-07 18:32 ` Trent Piepho
2018-11-08 11:46 ` Gustavo Pimentel
2018-11-08 20:51 ` Trent Piepho
2018-11-12 16:01 ` Lorenzo Pieralisi
2018-11-13 1:03 ` Gustavo Pimentel
2018-11-14 21:29 ` Trent Piepho
2018-11-12 23:45 ` Gustavo Pimentel
2018-11-07 18:46 ` Marc Zyngier
2018-11-08 11:24 ` Gustavo Pimentel
2018-11-06 18:59 ` Trent Piepho [this message]
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=1541530754.30311.254.camel@impinj.com \
--to=tpiepho@impinj.com \
--cc=bhelgaas@google.com \
--cc=faiz_abbas@ti.com \
--cc=gustavo.pimentel@synopsys.com \
--cc=jingoohan1@gmail.com \
--cc=jpinto@synopsys.com \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=marc.zyngier@arm.com \
--cc=stable@vger.kernel.org \
--cc=vigneshr@ti.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.