linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] PCI: Mark broken INTx masking for Mellanox devices
@ 2014-08-01  3:51 Gavin Shan
  2014-08-01  4:06 ` Alex Williamson
  0 siblings, 1 reply; 3+ messages in thread
From: Gavin Shan @ 2014-08-01  3:51 UTC (permalink / raw)
  To: linux-pci; +Cc: Gavin Shan

The VFIO driver is routing LSI interrupts by capturing, masking,
and then delivering. When passing though Mallanox adapters from
host to guest, interrupt storm was reported from host and guest.
That's because we can't mask the LSI interrupt with help of PCI
command register.

The patch marks broken INTx masking for Mellanox devices so that
the VFIO driver will always mask the interrupt from interrupt
controller side to avoid interrupt storm.

Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
---
 drivers/pci/quirks.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index d0f6926..8c2b96f 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2977,6 +2977,10 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CHELSIO, 0x0030,
 			 quirk_broken_intx_masking);
 DECLARE_PCI_FIXUP_HEADER(0x1814, 0x0601, /* Ralink RT2800 802.11n PCI */
 			 quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, 0x1003,
+			 quirk_broken_intx_masking);
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, 0x6750,
+			 quirk_broken_intx_masking);
 /*
  * Realtek RTL8169 PCI Gigabit Ethernet Controller (rev 10)
  * Subsystem: Realtek RTL8169/8110 Family PCI Gigabit Ethernet NIC
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] PCI: Mark broken INTx masking for Mellanox devices
  2014-08-01  3:51 [PATCH] PCI: Mark broken INTx masking for Mellanox devices Gavin Shan
@ 2014-08-01  4:06 ` Alex Williamson
  2014-08-01  4:40   ` Gavin Shan
  0 siblings, 1 reply; 3+ messages in thread
From: Alex Williamson @ 2014-08-01  4:06 UTC (permalink / raw)
  To: Gavin Shan; +Cc: linux-pci

On Fri, 2014-08-01 at 13:51 +1000, Gavin Shan wrote:
> The VFIO driver is routing LSI interrupts by capturing, masking,
> and then delivering. When passing though Mallanox adapters from
> host to guest, interrupt storm was reported from host and guest.
> That's because we can't mask the LSI interrupt with help of PCI
> command register.
> 
> The patch marks broken INTx masking for Mellanox devices so that
> the VFIO driver will always mask the interrupt from interrupt
> controller side to avoid interrupt storm.
> 
> Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
> ---
>  drivers/pci/quirks.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index d0f6926..8c2b96f 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -2977,6 +2977,10 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CHELSIO, 0x0030,
>  			 quirk_broken_intx_masking);
>  DECLARE_PCI_FIXUP_HEADER(0x1814, 0x0601, /* Ralink RT2800 802.11n PCI */
>  			 quirk_broken_intx_masking);
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, 0x1003,
> +			 quirk_broken_intx_masking);
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, 0x6750,
> +			 quirk_broken_intx_masking);
>  /*
>   * Realtek RTL8169 PCI Gigabit Ethernet Controller (rev 10)
>   * Subsystem: Realtek RTL8169/8110 Family PCI Gigabit Ethernet NIC

Is there an lspci description for the devices that we can also include?
You might also want to cc the driver maintainers to see if they're aware
or have any comments.  Thanks,

Alex


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] PCI: Mark broken INTx masking for Mellanox devices
  2014-08-01  4:06 ` Alex Williamson
@ 2014-08-01  4:40   ` Gavin Shan
  0 siblings, 0 replies; 3+ messages in thread
From: Gavin Shan @ 2014-08-01  4:40 UTC (permalink / raw)
  To: Alex Williamson; +Cc: Gavin Shan, linux-pci

On Thu, Jul 31, 2014 at 10:06:30PM -0600, Alex Williamson wrote:
>On Fri, 2014-08-01 at 13:51 +1000, Gavin Shan wrote:
>> The VFIO driver is routing LSI interrupts by capturing, masking,
>> and then delivering. When passing though Mallanox adapters from
>> host to guest, interrupt storm was reported from host and guest.
>> That's because we can't mask the LSI interrupt with help of PCI
>> command register.
>> 
>> The patch marks broken INTx masking for Mellanox devices so that
>> the VFIO driver will always mask the interrupt from interrupt
>> controller side to avoid interrupt storm.
>> 
>> Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>> Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
>> ---
>>  drivers/pci/quirks.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>> 
>> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
>> index d0f6926..8c2b96f 100644
>> --- a/drivers/pci/quirks.c
>> +++ b/drivers/pci/quirks.c
>> @@ -2977,6 +2977,10 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CHELSIO, 0x0030,
>>  			 quirk_broken_intx_masking);
>>  DECLARE_PCI_FIXUP_HEADER(0x1814, 0x0601, /* Ralink RT2800 802.11n PCI */
>>  			 quirk_broken_intx_masking);
>> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, 0x1003,
>> +			 quirk_broken_intx_masking);
>> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MELLANOX, 0x6750,
>> +			 quirk_broken_intx_masking);
>>  /*
>>   * Realtek RTL8169 PCI Gigabit Ethernet Controller (rev 10)
>>   * Subsystem: Realtek RTL8169/8110 Family PCI Gigabit Ethernet NIC
>
>Is there an lspci description for the devices that we can also include?
>You might also want to cc the driver maintainers to see if they're aware
>or have any comments.  Thanks,
>

Yes, I'll include that in next revision and cc driver's maintainer.

Thanks,
Gavin


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-08-01  4:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-01  3:51 [PATCH] PCI: Mark broken INTx masking for Mellanox devices Gavin Shan
2014-08-01  4:06 ` Alex Williamson
2014-08-01  4:40   ` Gavin Shan

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).