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