From: Michal Schmidt <mschmidt@redhat.com>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: David Vrabel <david.vrabel@csr.com>,
Matthew Wilcox <matthew@wil.cx>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: PCI: MSI interrupts masked using prohibited method
Date: Fri, 25 Jul 2008 15:29:18 +0200 [thread overview]
Message-ID: <20080725152918.43bf3100@brian.englab.brq.redhat.com> (raw)
In-Reply-To: <200807221052.26879.jbarnes@virtuousgeek.org>
On Tue, 22 Jul 2008 10:52:26 -0700
Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> On Tuesday, July 22, 2008 6:56 am Michal Schmidt wrote:
> > This breaks the setting of SMP affinity for MSI interrupts :-(
> > With the patch, writes to /proc/irq/<n>/smp_affinity are ignored
> > for an MSI interrupt.
>
> It should only break it for devices that don't provide a mask bit.
> But given that we can't really mask generically on those devices,
> maybe that's ok given that it fixes the other problems mentioned in
> this thread...
I looked a bit more into why exactly it breaks. The device for which
MSI IRQ affinity breaks is a "Broadcom Corporation NetXtreme II BCM5708
Gigabit Ethernet" (14e4:164c rev 12) in HP DL360 G5.
The interesting thing is that I can see Destination ID bits of MSI
Message Address change correctly in lspci output. But the interrupt is
still delivered load-balanced to all CPUs even though the Destination
ID identifies the single CPU I asked for. It seems the device only
takes the new Message Address setting into account when the MSI Enable
bit in the Message Control register is changed from 0 to 1. I tested
this by setting the MSI enable bit to 0 and then immediately back to 1
at the end of io_apic_64.c:set_msi_irq_affinity().
Is this a permitted behaviour for the device? I couldn't find anything
in the PCI specification that would mentioned it.
Later I tested it with a different device which does not have maskbits
either (an Intel Ethernet controller). For this device MSI IRQ
migration works without problems and no hackery with the MSI enable bit
was necessary.
Michal
next prev parent reply other threads:[~2008-07-25 13:29 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-24 10:46 David Vrabel
2008-06-25 21:20 ` Jesse Barnes
2008-06-27 12:17 ` David Vrabel
2008-06-27 17:07 ` Jesse Barnes
2008-07-16 19:43 ` Jesse Barnes
2008-07-16 19:58 ` Matthew Wilcox
2008-07-16 20:35 ` David Miller
2008-07-17 12:16 ` Krzysztof Halasa
2008-07-17 12:43 ` Matthew Wilcox
2008-07-17 13:14 ` David Vrabel
2008-07-17 15:39 ` Matthew Wilcox
2008-07-17 15:58 ` Thomas Gleixner
2008-07-17 16:11 ` Matthew Wilcox
2008-07-17 17:04 ` Thomas Gleixner
2008-07-17 16:56 ` Matthew Wilcox
[not found] ` <487F7DFA.10101@csr.com>
2008-07-17 19:48 ` Matthew Wilcox
2008-07-18 10:33 ` David Vrabel
2008-07-22 13:56 ` Michal Schmidt
2008-07-22 17:52 ` Jesse Barnes
2008-07-23 13:02 ` Michal Schmidt
2008-07-25 13:29 ` Michal Schmidt [this message]
2008-07-25 13:42 ` Matthew Wilcox
2008-07-25 13:53 ` Michal Schmidt
2008-07-25 15:51 ` Matthew Wilcox
2008-07-28 9:54 ` Michal Schmidt
2008-07-25 16:37 ` David Vrabel
2008-07-25 16:56 ` Matthew Wilcox
2008-07-25 19:12 ` Jesse Barnes
2008-07-28 9:59 ` Michal Schmidt
2008-07-28 22:04 ` Jesse Barnes
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=20080725152918.43bf3100@brian.englab.brq.redhat.com \
--to=mschmidt@redhat.com \
--cc=david.vrabel@csr.com \
--cc=jbarnes@virtuousgeek.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=matthew@wil.cx \
/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
Powered by JetHome