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

Bug#790694: linux-image-3.16.0-4-powerpc64: nouveau driver and msi interrupts



Hi Ben,

Not sure about any of this below but its just a theory...

I suspect the MSI Interrupts are an issue with the PCIe X 16 bus with the GPU hanging off the U4 / CPC945 memory controller / PCIe Host / Hypertransport bridge controller.

The other devices, i.e. the Broadcom LAN controllers integrated within the Broadcom HT-2000 Hypertransport I/O controller seem to be ok when using MSI Interrupts.

When compiling the kernel and not selecting pci quirks, the linux kernel reassigns the PCI resources, and also seems to uncover more of the PCIe resources. I need to do more tests to try and understand whats happenning, but once quirks is disabled, the pci config space as configured by linux is quite different and doesn't match up with the open firmware device tree and pci config.... It actually seems to make more sense once pci quirks is disabled. Still doesnt work though.

Looking in the source,  in the following file:
/arch/powerpc/platforms/powermac/pci.c
Line 1298, describes some workaround in playing around with the pci mapping.
When compiling the kernel and not selecting pci quirks, the linux kernel reassigns the PCI resources, and also shows the uncovers more of the PCIe resources.

Also, in the following file:
/arch/powerpc/platforms/powermac/setup.c
Line 644, describes some more of the OF dev tree --> Linux PCI dev tree matching.

What does this mean... dont know yet. But i doubt that there is an issue with the nouveau driver and msi support so dont apply the patch as there are other means to disable msi interrupts on nouveau.

I suspect the issue is msi support not working correctly because of the weird linux OF dev tree --> linux pci dev tree mapping along with some of the U4 / CPC945 resouces not being configured and workarounds being applied.

Ill ask on the linux ppc kernel dev list and see what responses i get over there as well.

Thanks Ben,
Regards,
Peter

On Tue, Jul 7, 2015 at 10:02 AM, Ben Hutchings <ben@decadent.org.uk> wrote:
On Tue, 2015-07-07 at 09:47 +1000, Peter Saisanas wrote:
> Hi Ben,
> I haven't applied the patch, I thought I would do a little more
> investigations before proceeding with disabling msi interrupts for
> all nv47gpu's.

Note that several other NV4x GPUs were already found to behave
erratically with MSIs enabled:
https://git.kernel.org/linus/4761703bd04bbdf56396d264903cc5a1fdcb3c01

> I have recompiled a 4k pagesize kernel again but enabling msi
> support. I can use the module option to disable msi interrupt's of
> nouveau if need be.
>
> But your right, the kernel does assign an msi address for the Quadro
> FX4500 GPU, however as mentioned before, it seems to work with the
> nouveau framebuffer console.
> But when Xorg starts up with 2d acceleration, the gpu locks up. Going
> back to legacy interrupts and it seems to work fine again...
>
> I have attached the detailed lspci -vvv output along with the output
> of /cat/proc/interrupts.
> Please note, you can see one interrupt is triggered with msi
> interrupts and nouveau, but it just hangs the gpu and the nouveau
> interrupt count doesn't increment.
> I can still ssh to it though, just the graphics is dead.

It also shows the Ethernet driver is using MSIs successfully, so
there's nothing fundamentally wrong with MSI on this system.

> Any tips where to proceed? Should I recompile the kernel with pci
> debugging support to hopefully give more helpful feedback?

That's unlikely to help; please try applying the patch.

> I think there are a few more issues with the PowerMac 11.2 support,
> but perhaps we can look at this issue.

Ben.

--
Ben Hutchings
Hoare's Law of Large Problems:
        Inside every large problem is a small problem struggling to get out.



Reply to: