Options for handling buggy PCI/PCI-X hardware when MSI is enabled

From: Nakajima, Jun
Date: Tue Sep 16 2003 - 18:40:03 EST


The other day, Long (Tom) posted:

During testing we have found many currently shipping
PCI/PCI-X MSI-capable devices have silicon bugs specific to
MSI support. Most of these will cause system failures when
MSI is enabled. To filter out MSI buggy hardware requires the
kernel to detect and disable the MSI support on specific hardware.

So far we've got two options based on the input from the community
(Jeff, Zwane, etc., thanks) to deal with this problem:
(1) the blacklist approach
(2) the new API (enable_msi, for example) approach

We would like to solicit more input to close this, to finalize the
solution.

Thanks,
Jun
======
"Blacklist" approach using PCI_quirks.c
---------------------------------------
Pros
- Places the burden to fix broken HW on the HW owners
- Consistent with the current MSI patch (enable all by default)
- A simple fix and minimum patch size (Patch already exists)
Cons
- Core kernel impact (larger image size)
- Added entries will require a kernel rebuild (core kernel code
change)

New API approach (enable_msi, for example)
-------------------------------------------
Pros
- Only working devices will be enabled via modification of the device

driver.
- Minimum impact (image size increase very small)
Cons
- All devices desiring MSI support will be required to modify
associated
device drivers
- Validation burden - known good devices not know until the driver is

modified and device tested
- The burden for MSI support is on devices that work and not those
that
are broken


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/