[Nouveau] CCACHE and VFETCH FAULTs causing lockups

koriakim at 0x04.net koriakim at 0x04.net
Tue Mar 1 14:06:15 PST 2011


> So these faults are just generic errors? Unrelated to page faults?

These faults *are* page faults, in a way.

On nv50, page faults are quite weird. When a fault happens, the MMU's fault reporting registers at 0x100c90 are filled with fault information, and the 'fault pending' flag is set. This is what nouveau reports as VM FAULT.

However, this does NOT trigger any specific interrupt - the fault is instead reported to requesting engine, which in turn reports an engine-specific interrupt, like VFETCH FAULT or CCACHE FAULT. These interrupts sometimes [eg for TPROP traps] also report some more useful information in engine-specific registers.

Usually getting an engine fault implies getting a VM fault, but not always, so nouveau reports them separately - it only uses the engine fault as a trigger to check for new VM faults, but does not associate them in any way. The reasons for mismatches could be:

- Interrupts that trigger VM fault in some cases, but not in others: DMA_PUSHER/MEM_FAULT can happen due to DMA_LIMIT overrun, or due to VM fault
- Multiple VM faults in quick succession will result in only one of them being reported as VM fault, but all of them as engine faults

Hope this clears things up.

Marcin Kościelnicki
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20110301/dd44239f/attachment.htm>


More information about the Nouveau mailing list