Re: [PATCH v2] PCI: Mark broken INTx masking for Mellanox devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 04, 2014 at 10:34:38AM +1000, Gavin Shan wrote:
>On Sun, Aug 03, 2014 at 09:08:06AM -0600, Alex Williamson wrote:
>>On Mon, 2014-08-04 at 00:30 +1000, Gavin Shan wrote:
>>> On Sun, Aug 03, 2014 at 08:57:39AM +0000, Eli Cohen wrote:
>>> >>>
>>> >>>What is the problem with masking the interrupts with the PCI command 
>>> >>>register? I'm asking because I want to understand in which devices we 
>>> >>>have the problem, and if it could be fixed by firmware guys.
>>> >>>What are the implications of having the quirk?
>>> >>>
>>> >
>>> >>The way to mask the interrupt through PCI command register isn't taking effect on IBM power platform. So we have to have the >quirk so that the interrupt could be masked from interrupt controller side with function disable_irq_nosync().
>>> >>
>>> >>If the interrupt can't be masked properly, we detect interrupt storm reported from host/guest when passing through those devices >via VFIO without suprise.
>>> >
>>> >Hi Gavin,
>>> >Does it have any effect on performance. Also, can you tell in which cases interrupts need to be masked?
>>> >
>>> 
>>> Eli, more code needed to be run for masking the LSI from interrupt controller
>>> side than from PCI command register.
>>> 
>>> I was passing through Mellanox devices from host to guest with VFIO, and I
>>> designated to use LSI in the guest side. More details could be found in
>>> drivers/vfio/pci/vfio_pci_intrs.c::vfio_intx_handler()
>>
>>INTx is relatively high overhead already for device assignment since the
>>interrupt is level triggered and needs to be masked on the host while
>>the guest is processing it.  The more important restriction imposed by
>>marking broken INTx masking is that the device needs an exclusive
>>interrupt line in order to be assigned to a guest.  That may be common
>>practice on IBM power, but on x86 it can make it much harder to
>>configure the system for this use case.  Thanks,
>>
>
>Power platform has the similar situation: Each PCI controller has 4
>LSIs shared by all child devices attached to the PHB. It would be
>racy if one LSI is shared by 2 or more devices. So masking LSI with
>PCI command register is the preferred mechanism. Unfortunately, it
>doesn't work on those 2 Mellanox devices. With the quirk, it's workable
>at least.
>

ping, Any more comments on this? :-)

Thanks,
Gavin

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




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux