From: ebiederm@xmission.com (Eric W. Biederman)
To: benh@kernel.crashing.org
Cc: Suresh Siddha <suresh.b.siddha@intel.com>,
Matthew Wilcox <matthew@wil.cx>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"grundler@parisc-linux.org" <grundler@parisc-linux.org>,
"mingo@elte.hu" <mingo@elte.hu>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"jgarzik@pobox.com" <jgarzik@pobox.com>,
"linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>,
"jbarnes@virtuousgeek.org" <jbarnes@virtuousgeek.org>,
"rdunlap@xenotime.net" <rdunlap@xenotime.net>,
"mtk.manpages@gmail.com" <mtk.manpages@gmail.com>
Subject: Re: Multiple MSI, take 3
Date: Fri, 11 Jul 2008 21:41:07 -0700 [thread overview]
Message-ID: <m13amf3eak.fsf@frodo.ebiederm.org> (raw)
In-Reply-To: <1215834720.7549.154.camel@pasglop> (Benjamin Herrenschmidt's message of "Sat, 12 Jul 2008 13:52:00 +1000")
Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:
> On Fri, 2008-07-11 at 15:59 -0700, Eric W. Biederman wrote:
>>
>> Working mask/unmask. With MSI-X as specced if I mask an irq and then unmask
>> it, an msi message will fire if something happened while the irq was masked
>> and not taken care of before the irq was unmasked. That is the correct
>> behavior for an irq and a mmu won't let me get that.
>
> And ? It's just a message, we can ignore it if masked, ie, do
> software-masking. Not a big deal... no ?
It is edge triggered so it won't refire when unmasked (especially if we don't know).
So it is easy to wind up in a state where the device is waiting for the software
and the software is waiting for the device because an irq gets dropped.
There are enough places that have problems that we have a fairly standard work around
to the problem (listed above) by just taking the first irq (after we have disabled the
irq) and setting it pending in software and then actually masking it in hardware.
That works, but it is still isn't quite correct. Because we can run the
interrupt handler once to often. For interrupts that are never shared and
always in order with the DMA, generally don't require reading a status
register on the card, and are otherwise highly optimized that might actually
be a problem.
Which is why I said that it doesn't look like even using an iommu can
fix all of the issues with treating msi multi message mode messages
as individual irqs. We can get very close but not quite there.
Eric
next prev parent reply other threads:[~2008-07-12 4:41 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-11 0:57 Multiple MSI, take 3 Matthew Wilcox
2008-07-11 0:59 ` [PATCH] PCI MSI: Replace 'type' with 'is_msix' Matthew Wilcox
2008-07-11 0:59 ` [PATCH] PCI: Add support for multiple MSI Matthew Wilcox
2008-07-11 8:28 ` Hidetoshi Seto
2008-07-11 9:45 ` Matthew Wilcox
2008-07-12 3:45 ` Benjamin Herrenschmidt
2008-07-11 1:00 ` [PATCH] Rewrite MSI-HOWTO Matthew Wilcox
2008-09-26 6:42 ` Grant Grundler
2008-07-11 1:00 ` [PATCH] AHCI: Request multiple MSIs Matthew Wilcox
2008-07-11 1:00 ` [PATCH] x86-64: Support for " Matthew Wilcox
2008-07-11 4:50 ` Kenji Kaneshige
2008-07-11 8:50 ` Matthew Wilcox
2008-07-14 1:08 ` Kenji Kaneshige
2008-07-11 10:06 ` Multiple MSI, take 3 Eric W. Biederman
2008-07-11 10:23 ` Matthew Wilcox
2008-07-11 10:32 ` David Miller
2008-07-11 10:41 ` Matthew Wilcox
2008-07-11 11:05 ` Eric W. Biederman
2008-07-11 11:34 ` Eric W. Biederman
2008-07-11 12:17 ` Matthew Wilcox
2008-07-11 15:10 ` Matthew Wilcox
2008-07-11 21:59 ` Suresh Siddha
2008-07-11 22:59 ` Eric W. Biederman
2008-07-11 23:15 ` Suresh Siddha
2008-07-11 23:59 ` Eric W. Biederman
2008-07-12 3:52 ` Benjamin Herrenschmidt
2008-07-12 4:41 ` Eric W. Biederman [this message]
2008-07-12 7:36 ` Benjamin Herrenschmidt
2008-07-13 22:30 ` Eric W. Biederman
2008-07-13 22:44 ` Benjamin Herrenschmidt
2008-07-13 23:29 ` Eric W. Biederman
2008-07-14 0:17 ` Benjamin Herrenschmidt
2008-07-14 0:44 ` David Miller
2008-07-14 2:03 ` Eric W. Biederman
2008-07-14 3:19 ` David Miller
2008-09-26 5:30 ` Jike Song
2008-09-27 19:04 ` Matthew Wilcox
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=m13amf3eak.fsf@frodo.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=benh@kernel.crashing.org \
--cc=grundler@parisc-linux.org \
--cc=jbarnes@virtuousgeek.org \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=matthew@wil.cx \
--cc=mingo@elte.hu \
--cc=mtk.manpages@gmail.com \
--cc=rdunlap@xenotime.net \
--cc=suresh.b.siddha@intel.com \
--cc=tglx@linutronix.de \
/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;
as well as URLs for NNTP newsgroup(s).