Re: [PATCH RESEND 1/1] PCI: Add ATS-disable quirk for AMD Radeon R7 GPUs

From: Nikolai Kostrigin
Date: Wed Apr 10 2019 - 04:03:27 EST


[+cc] linux-kernel@, linux-pci@

10.04.2019 10:26, Nikolai Kostrigin ÐÐÑÐÑ:
> Hello!
>
> 10.04.2019 00:59, Bjorn Helgaas ÐÐÑÐÑ:
>> [+cc Alex]
>>
>> This claims to be a resend, but I don't see a previous posting.
> For some reason, unknown to me, my previous letter didn't appear
> neither in linux-kernel@, nor in linux-pci@ mailing lists.
I'm sorry. Now it's obvious I didn't manage to turn HTML formatting off
before.
>
>> There *was* discussion when the quirk was added two years ago for a
>> different device. As part of that, Alex thought only that device
>> would be affected and ATS was validated on other GPUs:
>>
>> https://lore.kernel.org/lkml/BN6PR12MB165278346BE8A76B1E4412AFF7EA0@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/
> I'm aware of that and it was Joerg who pointed me to the above thread
> when I asked him for help.
> In my case both devices mentioned in quirks are present in a laptop.
> Unfortunately I have no hardware with standalone AMD R7 GPU
> (0102:6900) to check whether unpatched kernel would fail
> the same way with both ATS and IOMMU enabled.
>
>> On Mon, Apr 08, 2019 at 01:37:25PM +0300, Nikolai Kostrigin wrote:
>>> ATS is broken on this hardware (at least for Stoney Ridge
>>> based laptop) and causes IOMMU stalls and
>>> system failure. Disable ATS on these devices to make them
>>> usable again with IOMMU enabled
>>> Thanks to Joerg Roedel <jroedel@xxxxxxx> for help.
>>>
>>> https://bugzilla.kernel.org/show_bug.cgi?id=194521
>>>
>>> Signed-off-by: Nikolai Kostrigin <nickel@xxxxxxxxxxxx>
>> Joerg, I'm happy to merge this if you would review or ack it. I don't
>> know enough to conclude that this is the root cause It'd be nice to
>> have an actual AMD erratum. Maybe it would even have a list of
>> affected devices so we could get them all at once so people wouldn't
>> have to trip over them one by one.
>>
>>> ---
>>> drivers/pci/quirks.c | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
>>> index 4700d24e5d55..abb2532e16bf 100644
>>> --- a/drivers/pci/quirks.c
>>> +++ b/drivers/pci/quirks.c
>>> @@ -4876,6 +4876,7 @@ static void quirk_no_ats(struct pci_dev *pdev)
>>>
>>> /* AMD Stoney platform GPU */
>>> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_no_ats);
>>> +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x6900, quirk_no_ats);
>>> #endif /* CONFIG_PCI_ATS */
>>>
>>> /* Freescale PCIe doesn't support MSI in RC mode */
>>> --
>>> 2.21.0
>>>
>
> --
> Best regards,
> Nikolai Kostrigin

--
Best regards,
Nikolai Kostrigin