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

Luís Mendes luis.p.mendes at gmail.com
Thu Nov 2 11:13:36 UTC 2017


Thanks for your reply...

Meanwhile, yesterday I was able to progress a bit with this... I have
compiled mesa-17.2.4 with the etnaviv code replaced with the latest from
mesa git repo, thus enabling OpenGL 2.1.

I was able to login into Ubuntu Desktop 17.10 with wayland, however the GUI
is still to heavy for GC3000. I saw no notibceable performance improvement
or degradation when comparing with the 2D unit and xf86-video-armada driver.

Regarding Xorg I found out that the graphical display is initialized, but
no image can be seen because the imx-drm driver of mesa doesn't provide the
DRI interface. It seems also possible to integrate VDPAU or VAAPI with
imx-drm and the video acceleration unit of i.MX6. That would be pretty
nice, but I think it would require lots of work. I also believe that the
codec acceleration unit is not completely open-source... if it was, it was
just a matter of creating a wrapper for the VDPAU API.

Xorg logs follow below.

Regards,
Luís


[    17.121] (II) xfree86: Adding drm device (/dev/dri/card0)
[    17.137] (II) xfree86: Adding drm device (/dev/dri/card1)
[    17.137] (II) no primary bus or device found
[    17.138]    falling back to
/sys/devices/soc0/display-subsystem/drm/card0
[    17.138] (II) LoadModule: "glx"
[    17.156] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    17.241] (II) Module glx: vendor="X.Org Foundation"
[    17.241]    compiled for 1.19.5, module version = 1.0.0
[    17.241]    ABI class: X.Org Server Extension, version 10.0
[    17.242] (==) Matched modesetting as autoconfigured driver 0
[    17.242] (==) Matched fbdev as autoconfigured driver 1
[    17.242] (==) Assigned the driver to the xf86ConfigLayout
[    17.242] (II) LoadModule: "modesetting"
[    17.244] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[    17.250] (II) Module modesetting: vendor="X.Org Foundation"
[    17.250]    compiled for 1.19.5, module version = 1.19.5
[    17.251]    Module class: X.Org Video Driver
[    17.251]    ABI class: X.Org Video Driver, version 23.0
[    17.251] (II) LoadModule: "fbdev"
[    17.252] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[    17.254] (II) Module fbdev: vendor="X.Org Foundation"
[    17.254]    compiled for 1.19.3, module version = 0.4.4
[    17.254]    Module class: X.Org Video Driver
[    17.254]    ABI class: X.Org Video Driver, version 23.0
[    17.255] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[    17.255] (II) FBDEV: driver for framebuffer: fbdev
[    17.285] (II) modeset(0): using drv /dev/dri/card0
[    17.285] (WW) Falling back to old probe method for fbdev
[    17.285] (II) Loading sub module "fbdevhw"
[    17.285] (II) LoadModule: "fbdevhw"
[    17.287] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[    17.289] (II) Module fbdevhw: vendor="X.Org Foundation"
[    17.290]    compiled for 1.19.5, module version = 0.0.2
[    17.290]    ABI class: X.Org Video Driver, version 23.0
[    17.293] (II) modeset(0): Creating default Display subsection in Screen
section        "Default Screen Section" for depth/fbbpp 24/32
[    17.293] (==) modeset(0): Depth 24, (==) framebuffer bpp 32
[    17.293] (==) modeset(0): RGB weight 888
[    17.294] (==) modeset(0): Default visual is TrueColor
[    17.294] (II) Loading sub module "glamoregl"
[    17.294] (II) LoadModule: "glamoregl"
[    17.295] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
[    17.352] (II) Module glamoregl: vendor="X.Org Foundation"
[    17.352]    compiled for 1.19.5, module version = 1.0.0
[    17.353]    ABI class: X.Org ANSI C Emulation, version 0.4
[    17.353] (II) glamor: OpenGL accelerated X.org driver based.
[    18.043] (II) glamor: EGL version 1.4 (DRI2):
[    18.075] (II) modeset(0): glamor initialized
[    18.077] (II) modeset(0): Output HDMI-1 has no monitor section
[    18.079] (II) modeset(0): EDID for output HDMI-1
[    18.079] (II) modeset(0): Printing probed modes for output HDMI-1
[    18.079] (II) modeset(0): Modeline "1024x768"x60.0   65.00  1024 1048
1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    18.079] (II) modeset(0): Modeline "800x600"x60.3   40.00  800 840 968
1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    18.080] (II) modeset(0): Modeline "800x600"x56.2   36.00  800 824 896
1024  600 601 603 625 +hsync +vsync (35.2 kHz e:
[    18.080] (II) modeset(0): Modeline "848x480"x60.0   33.75  848 864 976
1088  480 486 494 517 +hsync +vsync (31.0 kHz e)
[    18.080] (II) modeset(0): Modeline "640x480"x59.9   25.18  640 656 752
800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    18.080] (II) modeset(0): Output HDMI-1 connected
[    18.080] (II) modeset(0): Using exact sizes for initial modes
[    18.080] (II) modeset(0): Output HDMI-1 using initial mode 1024x768 +0+0
[    18.081] (==) modeset(0): Using gamma correction (1.0, 1.0, 1.0)
[    18.081] (==) modeset(0): DPI set to (96, 96)
[    18.081] (II) Loading sub module "fb"
[    18.081] (II) LoadModule: "fb"
[    18.088] (II) Loading /usr/lib/xorg/modules/libfb.so
[    18.092] (II) Module fb: vendor="X.Org Foundation"
[    18.092]    compiled for 1.19.5, module version = 1.0.0
[    18.092]    ABI class: X.Org ANSI C Emulation, version 0.4
[    18.092] (II) UnloadModule: "fbdev"
[    18.092] (II) Unloading fbdev
[    18.093] (II) UnloadSubModule: "fbdevhw"
[    18.093] (II) Unloading fbdevhw
[    18.093] (==) Depth 24 pixmap format is 32 bpp
[    18.326] (==) modeset(0): Backing store enabled
[    18.326] (==) modeset(0): Silken mouse enabled
[    18.330] (II) modeset(0): RandR 1.2 enabled, ignore the following RandR
disabled message.
[    18.336] (==) modeset(0): DPMS enabled
[    18.337] (II) modeset(0): [DRI2] Setup complete
[    18.337] (II) modeset(0): [DRI2]   DRI driver: imx-drm
[    18.337] (II) modeset(0): [DRI2]   VDPAU driver: imx-drm
[    18.337] (--) RandR disabled
[    18.363] (II) SELinux: Disabled on system
[    18.366] (EE) AIGLX error: imx-drm does not export required DRI
extension
[    18.366] (EE) AIGLX: reverting to software rendering
[    18.391] (II) IGLX: enabled GLX_MESA_copy_sub_buffer
[    18.395] (II) IGLX: Loaded and initialized swrast
[    18.396] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    18.405] (II) modeset(0): Damage tracking initialized
[    18.406] (II) modeset(0): Setting screen physical size to 270 x 203


On Wed, Nov 1, 2017 at 1:52 PM, Lucas Stach <l.stach at pengutronix.de> wrote:

> Am Dienstag, den 31.10.2017, 10:04 +0000 schrieb Russell King - ARM Linux:
> > On Tue, Oct 31, 2017 at 09:11:37AM +0000, Luís Mendes wrote:
> > > Hi,
> > >
> > > Russel: I believe that the video corruption I saw with copyNToN(...)
> > > function of xf86-video-armada is not the root cause of the problem, but
> > > rather a side effect of the MMU faults.
> > > Can you help me setup a debug environment where I can dump the client
> > > process stack from the etnaviv kernel module upon a MMU fault? I have
> > > enough space on my SSD drive to dump the memory images.
> >
> > I haven't looked at the kernel etnaviv driver in detail for a while,
> > but I added support for devcoredump to the driver, which dumps all
> > buffers attached to the GPU.  This is rigged up to recover_worker().
> >
> > When a MMU exception occurs, you'd need to call a worker to take
> > gpu->lock, and then call etnaviv_core_dump() in the same way
> > recover_worker() does.
>
> With the current page table settings for MMUv2 any MMU fault will
> actually stall the GPU. This way faults will already trigger the
> generation of coredumps, as the GPU is hung at that point. You don't
> need to change anything in the kernel driver for this to work.
>
> Regards,
> Lucas
>
> > You'll need to clone and install
> >
> >   git://git.armlinux.org.uk/~rmk/etna-gpu-tools.git/
> >
> > which contains the udev rules to detect when an etnaviv coredump
> > happens, and automatically unpack it.  It'll want the etna_viv
> > source for some of the tools, and you'll need to edit the
> > Makefile to point it to that (it currently uses /shared/etna_viv).
> >
> > The devcoredump files will be located (by default) in /var/crash,
> > named etnaviv-$date.bin, and the unpacked versions in
> > /tmp/etnaviv-$date.
> >
> > Located in the package are tools to diff between two command
> > streams, detile etnaviv buffers, a replacement viv_info utility
> > for the DRM etnaviv version, and some scripts to help hexdump
> > the MMU and 3D GPU index buffers.
> >
> > What I've omitted from it is the perl script I use to parse the
> > GPU command stream - I forget why, but probably because it was
> > rather dirty, and accessed memory via /dev/mem.  I also don't
> > think it had the bits for the 2D GPU.  I'll see if I can clean
> > it up at some point and include it in the above git tree.
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/etnaviv/attachments/20171102/b6e34cb2/attachment-0001.html>


More information about the etnaviv mailing list