Paul Dufresne
2023-Dec-03 19:04 UTC
[Nouveau] Meaning of the engines in paramaters of nouveau module
In https://nouveau.freedesktop.org/KernelModuleParameters.html, there is: Here is a list of engines: DEVICE DMAOBJ PBSP PCE0 PCE1 PCE2 PCRYPT PDISP PFIFO PGRAPH PMPEG PPM PPPP PVP SW Also, in debug: CLIENT I have tried to find a description of those. https://envytools.readthedocs.io/en/latest/ help a bit, but I don't find a precise correlation. https://nouveau.freedesktop.org/NouveauTerms.html does not seems to have most of these terms. I am particularly curious about PCE[0-3]. But also about CLIENT, that seems different and mysterious. I wonder if it is possible to write: nouveau.debug=info,PDISP=debug to have the info debug level as the default, but for PDISP have the debug level Also, my interest is linked to the state of GPU graph given after a context switch timeout that looks like: [ 1696.780305] nouveau 0000:01:00.0: fifo: SCHED_ERROR 0a [CTXSW_TIMEOUT] [ 1696.780361] nouveau 0000:01:00.0: fifo:000000:00[ gr]: 8006e005: busy 1 faulted 0 chsw 1 save 1 load 1 chid 5*-> chid 6 [ 1696.780422] nouveau 0000:01:00.0: fifo:000000:07[ ce2]: 00050005: busy 0 faulted 0 chsw 0 save 0 load 0 chid 5 -> chid 5 [ 1696.780476] nouveau 0000:01:00.0: fifo:000004:04[ ce0]: 00000000: busy 0 faulted 0 chsw 0 save 0 load 0 chid 0 -> chid 0 [ 1696.780529] nouveau 0000:01:00.0: fifo:000001:01[ mspdec]: 00000000: busy 0 faulted 0 chsw 0 save 0 load 0 chid 0 -> chid 0 [ 1696.780581] nouveau 0000:01:00.0: fifo:000002:02[ msppp]: 00000000: busy 0 faulted 0 chsw 0 save 0 load 0 chid 0 -> chid 0 [ 1696.780633] nouveau 0000:01:00.0: fifo:000003:03[ msvld]: 00000000: busy 0 faulted 0 chsw 0 save 0 load 0 chid 0 -> chid 0 [ 1696.780689] nouveau 0000:01:00.0: fifo:000000:00[ gr]: 8006e005: busy 1 faulted 0 chsw 1 save 1 load 1 chid 5*-> chid 6 [ 1696.780744] nouveau 0000:01:00.0: fifo:000000:00[ gr]: 8006e005: busy 1 faulted 0 chsw 1 save 1 load 1 chid 5*-> chid 6 [ 1696.780795] nouveau 0000:01:00.0: fifo:000000:00[ gr]: triggering mmu fault on 0x00 [ 1696.780835] nouveau 0000:01:00.0: fifo:000000:07[ ce2]: 00050005: busy 0 faulted 0 chsw 0 save 0 load 0 chid 5 -> chid 5 [ 1696.780942] nouveau 0000:01:00.0: fifo:000000:00[ gr]: 00000100: mmu fault triggered [ 1696.780987] nouveau 0000:01:00.0: fifo:000000:00[ gr]: c006e005: busy 1 faulted 1 chsw 1 save 1 load 1 chid 5*-> chid 6 [ 1696.781040] nouveau 0000:01:00.0: fifo:000000:0005:[Renderer[13701]] rc scheduled where I suspect ce2, is linked to PCE2. Is there a documentation that describes those "engines"?
Dave Airlie
2023-Dec-05 03:27 UTC
[Nouveau] Meaning of the engines in paramaters of nouveau module
On Mon, 4 Dec 2023 at 05:04, Paul Dufresne <dufresnep at zoho.com> wrote:> > In https://nouveau.freedesktop.org/KernelModuleParameters.html, there is: > Here is a list of engines: > DEVICE > DMAOBJ > PBSP > PCE0 > PCE1 > PCE2 > PCRYPT > PDISP > PFIFO > PGRAPH > PMPEG > PPM > PPPP > PVP > SW > Also, in debug: > CLIENT > > I have tried to find a description of those. > https://envytools.readthedocs.io/en/latest/ > help a bit, but I don't find a precise correlation. > > https://nouveau.freedesktop.org/NouveauTerms.html > does not seems to have most of these terms. > > I am particularly curious about PCE[0-3]. > But also about CLIENT, that seems different and mysterious. > > I wonder if it is possible to write: > nouveau.debug=info,PDISP=debug > to have the info debug level as the default, but for PDISP have the debug level > > Also, my interest is linked to the state of GPU graph given after a context switch timeout that looks like: > [ 1696.780305] nouveau 0000:01:00.0: fifo: SCHED_ERROR 0a [CTXSW_TIMEOUT] > [ 1696.780361] nouveau 0000:01:00.0: fifo:000000:00[ gr]: 8006e005: busy 1 faulted 0 chsw 1 save 1 load 1 chid 5*-> chid 6 > [ 1696.780422] nouveau 0000:01:00.0: fifo:000000:07[ ce2]: 00050005: busy 0 faulted 0 chsw 0 save 0 load 0 chid 5 -> chid 5 > [ 1696.780476] nouveau 0000:01:00.0: fifo:000004:04[ ce0]: 00000000: busy 0 faulted 0 chsw 0 save 0 load 0 chid 0 -> chid 0 > [ 1696.780529] nouveau 0000:01:00.0: fifo:000001:01[ mspdec]: 00000000: busy 0 faulted 0 chsw 0 save 0 load 0 chid 0 -> chid 0 > [ 1696.780581] nouveau 0000:01:00.0: fifo:000002:02[ msppp]: 00000000: busy 0 faulted 0 chsw 0 save 0 load 0 chid 0 -> chid 0 > [ 1696.780633] nouveau 0000:01:00.0: fifo:000003:03[ msvld]: 00000000: busy 0 faulted 0 chsw 0 save 0 load 0 chid 0 -> chid 0 > [ 1696.780689] nouveau 0000:01:00.0: fifo:000000:00[ gr]: 8006e005: busy 1 faulted 0 chsw 1 save 1 load 1 chid 5*-> chid 6 > [ 1696.780744] nouveau 0000:01:00.0: fifo:000000:00[ gr]: 8006e005: busy 1 faulted 0 chsw 1 save 1 load 1 chid 5*-> chid 6 > [ 1696.780795] nouveau 0000:01:00.0: fifo:000000:00[ gr]: triggering mmu fault on 0x00 > [ 1696.780835] nouveau 0000:01:00.0: fifo:000000:07[ ce2]: 00050005: busy 0 faulted 0 chsw 0 save 0 load 0 chid 5 -> chid 5 > [ 1696.780942] nouveau 0000:01:00.0: fifo:000000:00[ gr]: 00000100: mmu fault triggered > [ 1696.780987] nouveau 0000:01:00.0: fifo:000000:00[ gr]: c006e005: busy 1 faulted 1 chsw 1 save 1 load 1 chid 5*-> chid 6 > [ 1696.781040] nouveau 0000:01:00.0: fifo:000000:0005:[Renderer[13701]] rc scheduled > > where I suspect ce2, is linked to PCE2. > > Is there a documentation that describes those "engines"?CE is copy engine. But this looks like an mmu fault on the GPU side, so some shader is doing something wrong most likely. Dave.