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.
Reasonably Related Threads
- Meaning of the engines in paramaters of nouveau module
- [PATCH 0/5] Improve Robust Channel (RC) recovery for Turing
- [PATCH] fifo/gk104: fix chid bit mask
- [RFC PATCH v2 0/5] More explicit pushbuf error handling
- [RFC PATCH] drm/nouveau: report channel owner in error messages