From: Roland Dreier <rolandd@cisco.com>
To: gregkh@suse.de, mst@mellanox.co.il
Cc: linux-kernel@vger.kernel.org, linux-pci@atrey.karlin.mff.cuni.cz
Subject: AMD 8131 and MSI quirk
Date: Sat, 22 Oct 2005 15:14:34 -0700 [thread overview]
Message-ID: <524q799p2t.fsf@cisco.com> (raw)
The current quirk_amd_8131_ioapic() function sets a global
pci_msi_quirk flag, which disables MSI/MSI-X for all devices in the
system. This is safe but suboptimal, because there may be devices on
other buses not related to the AMD 8131 bridge, for which MSI would
work fine. As an example, see the end of this email for a lspci -t
from a real Opteron system that has PCI-X buses coming from an AMD
8131 and PCI Express buses coming from an Nforce4 bridge -- MSI works
fine for the Mellanox InfiniBand adapter on the PCIe bus, if we allow
it to be enabled.
I guess what we really should be doing is setting the dev->no_msi flag
for all devices below the AMD 8131 PCI-X bridge rather than turning
off MSI globally. Of course this is somewhat tricky, since a device
could be hotplugged onto a bus below the AMD 8131. Greg, any thoughts
about the proper way to use the driver model infrastructure to handle
this?
The other place that pci_msi_quirk is set is quirk_svw_msi(). I don't
know why MSI is turned off for that Serverworks chipset, but perhaps
the same change could be made, and the global pci_msi_quirk flag
killed off entirely.
Thanks,
Roland
-+-[80]-+-00.0 nVidia Corporation CK804 Memory Controller
| +-01.0 nVidia Corporation CK804 Memory Controller
| +-0a.0 nVidia Corporation CK804 Ethernet Controller
| \-0e.0-[81]----00.0 Mellanox Technologies MT25208 InfiniHost III Ex (Tavor compatibility mode)
+-[08]-+-0a.0-[09]--
| +-0a.1 Advanced Micro Devices [AMD] AMD-8131 PCI-X APIC
| +-0b.0-[0a]--+-04.0 Intel Corporation 82546EB Gigabit Ethernet Controller (Copper)
| | +-04.1 Intel Corporation 82546EB Gigabit Ethernet Controller (Copper)
| | \-09.0 Chelsio Communications Inc: Unknown device 000b
| \-0b.1 Advanced Micro Devices [AMD] AMD-8131 PCI-X APIC
\-[00]-+-00.0 nVidia Corporation CK804 Memory Controller
+-01.0 nVidia Corporation CK804 ISA Bridge
+-01.1 nVidia Corporation CK804 SMBus
+-02.0 nVidia Corporation CK804 USB Controller
+-02.1 nVidia Corporation CK804 USB Controller
+-04.0 nVidia Corporation CK804 AC'97 Audio Controller
+-06.0 nVidia Corporation CK804 IDE
+-07.0 nVidia Corporation CK804 Serial ATA Controller
+-08.0 nVidia Corporation CK804 Serial ATA Controller
+-09.0-[01]----05.0 Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)
+-0a.0 nVidia Corporation CK804 Ethernet Controller
+-0e.0-[02]--+-00.0 ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)]
| \-00.1 ATI Technologies Inc: Unknown device 5b70
+-18.0 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
+-18.1 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
+-18.2 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
+-18.3 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
+-19.0 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
+-19.1 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
+-19.2 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
\-19.3 Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
next reply other threads:[~2005-10-22 22:14 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-22 22:14 Roland Dreier [this message]
2005-10-22 23:32 ` AMD 8131 and MSI quirk Matthew Wilcox
2005-10-26 22:51 ` Greg KH
2005-10-27 6:30 ` Ivan Kokshaysky
2005-10-27 15:08 ` Roland Dreier
2005-10-27 16:36 ` Matthew Wilcox
2005-10-27 17:11 ` Grant Grundler
2006-02-14 16:52 ` Michael S. Tsirkin
2006-02-14 16:56 ` Matthew Wilcox
2006-02-14 17:17 ` Roland Dreier
2006-02-14 17:19 ` Roland Dreier
2006-02-14 18:03 ` Kristen Accardi
2006-02-14 21:21 ` Michael S. Tsirkin
2006-02-14 22:06 ` Kristen Accardi
2006-02-14 22:10 ` Michael S. Tsirkin
2006-02-14 22:52 ` Kristen Accardi
2006-02-14 18:27 ` Roland Dreier
2006-02-14 20:03 ` Matthew Wilcox
2006-02-14 21:24 ` Roland Dreier
2006-02-14 21:11 ` Michael S. Tsirkin
2006-02-14 21:24 ` Roland Dreier
2006-02-17 0:09 ` Greg KH
2006-02-17 0:16 ` Roland Dreier
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=524q799p2t.fsf@cisco.com \
--to=rolandd@cisco.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
--cc=mst@mellanox.co.il \
/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