etnaviv-gpu 134000.gpu: MMU fault status 0x00000002 on i.XM6 Quad Plus

Luís Mendes luis.p.mendes at gmail.com
Wed Aug 30 13:51:33 UTC 2017


Hi,

On Wed, Aug 30, 2017 at 1:37 PM, Luís Mendes <luis.p.mendes at gmail.com>
wrote:

> Hi Lucas, Russel,
>
> In summay I believe to have found three different issues:
> 1 - Screen blanking on kernels >= 4.12.0
> 2 - MMU faults when login in into Ubuntu Mate 17.04 (no screen corruption
> is visible)
> 3 - Bug on etnaviv_accel_CopyNtoN(...) which fails to copy some areas
> containing text into the desktop, X menus and dialog windows. I am trying
> to collect additional data on this one.
>
>

Regarding issue 3), I have found that all the missing areas that I am
observing have h < 25 and w >= 40:
Aug 30 13:46:51 picolo etnaviv[5674]:
pSrc=0x1ebf2a0,pDst=0x1dda8e8,pGC=0x1e13eb8
Aug 30 13:46:51 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=0,dsty=0
Aug 30 13:46:51 picolo etnaviv[5674]:
pSrc=0x1d95f50,pDst=0x1dda8e8,pGC=0x1e13eb8
Aug 30 13:46:51 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=0,dsty=0
Aug 30 13:46:51 picolo etnaviv[5674]:
pSrc=0x1dc6540,pDst=0x1dda8e8,pGC=0x1e13eb8
Aug 30 13:46:51 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=0,dsty=0
Aug 30 13:46:53 picolo etnaviv[5674]:
pSrc=0x1edb430,pDst=0x1dda8e8,pGC=0x1e13eb8
Aug 30 13:46:53 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=0,dsty=0
Aug 30 13:47:04 picolo etnaviv[5674]:
pSrc=0x1d2bc18,pDst=0x1dda8e8,pGC=0x1e13eb8
Aug 30 13:47:04 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=0,dsty=0
Aug 30 13:47:04 picolo etnaviv[5674]:
pSrc=0x1d2bc18,pDst=0x1dda8e8,pGC=0x1e13eb8
Aug 30 13:47:04 picolo etnaviv[5674]: srcx=0,srcy=0,w=131,h=24,dstx=0,dsty=0

I was able to temporaly log and fix this issue by disabling acceleration
for areas with such geometries.
The code I used was:
//Code Responsible for missing text areas...
static RegionPtr
etnaviv_CopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
    int srcx, int srcy, int w, int h, int dstx, int dsty)
{
    int unaccel=0;
    struct etnaviv *etnaviv = etnaviv_get_screen_priv(pDst->pScreen);

    assert(etnaviv_GC_can_accel(pGC, pDst));

    if (h < 25 && w >= 40) {
        syslog(LOG_WARNING, "pSrc=%p,pDst=%p,pGC=%p\n", pSrc, pDst, pGC);
        syslog(LOG_WARNING, "srcx=%d,srcy=%d,w=%d,h=%d,dstx=%d,dsty=%d\n",
srcx, srcy, w, h, dstx, dsty);
        unaccel = 1; //Disable acceleration for these geometries...
    }

    if (etnaviv->force_fallback || unaccel == 1)
        return unaccel_CopyArea(pSrc, pDst, pGC, srcx, srcy, w, h,
                    dstx, dsty);

    return miDoCopy(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
            etnaviv_accel_CopyNtoN, 0, NULL);
}

Regards,
Luís
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/etnaviv/attachments/20170830/7f94a1e1/attachment-0001.html>


More information about the etnaviv mailing list