[meta-freescale] xf86-video-imxfb-vivante crashing with Xorg 1.19

Tom Hochstein tom.hochstein at nxp.com
Tue Jan 31 12:14:25 PST 2017



> -----Original Message-----
> From: Gary Thomas [mailto:gary at mlbassoc.com]
> Sent: Tuesday, January 24, 2017 9:37 AM
> To: Tom Hochstein <tom.hochstein at nxp.com>; meta-freescale at yoctoproject.org
> Cc: Lauren Post <lauren.post at nxp.com>
> Subject: Re: [meta-freescale] xf86-video-imxfb-vivante crashing with Xorg 1.19
> 
> On 2017-01-24 16:32, Tom Hochstein wrote:
> > Hi Gary,
> >
> > I am seeing a failure too. We're looking into it.
> 
> Thanks for the feedback.  Looking forward to a resolution.  Let me know if
> I can provide any more data to help diagnose the issue.

I posted a patch from Prabhu to OE-core.

> 
> > -----Original Message-----
> > From: Gary Thomas [mailto:gary at mlbassoc.com]
> > Sent: Tuesday, January 24, 2017 8:41 AM
> > To: meta-freescale at yoctoproject.org
> > Cc: Tom Hochstein <tom.hochstein at nxp.com>; Lauren Post <lauren.post at nxp.com>
> > Subject: Re: [meta-freescale] xf86-video-imxfb-vivante crashing with Xorg 1.19
> >
> > On 2017-01-17 06:32, Gary Thomas wrote:
> >> When I build for my i.MX6Q target, X crashes immediately.  This is a
> >> direct result of OE-core updating the X server from 1.18.4 to 1.19
> >> What I've been able to discover is that the video driver (xf86-video-imxfb-vivante)
> >> is being called early on from 'AddScreen' in the main X server.  The
> >> driver sets up a shared data structure DRIInfoRec like this:
> >>
> >> VivDRIScreenInit: pDRIInfo: 0xb76e80, busIdString = 0xb76f38 ('platform:Vivante GCCore:00')
> >> 00B76E80: 0000 0000 0000 0000  0000 0000 0000 0000   |................|
> >> 00B76E90: 0000 0000 0000 0000  0000 0000 0000 0000   |................|
> >> 00B76EA0: 0000 0000 0000 0000  9401 1500 3C03 1500   |............<...|
> >> 00B76EB0: 9CCF 1400 B0D1 1400  1404 1500 38D3 1400   |............8...|
> >> 00B76EC0: B0D6 59B6 B8D6 59B6  386F B700 0000 0000   |..Y...Y.8o......|
> >> 00B76ED0: 0000 0000 0000 0000  0000 0000 0000 0000   |................|
> >> 00B76EE0: 0000 0000 0000 0000  0000 0000 0000 0000   |................|
> >> 00B76EF0: 0000 0000 0000 0000  0000 0000 0000 0000   |................|
> >> 00B76F00: 0000 0000 0000 0000  0000 0000 0000 0000   |................|
> >> 00B76F10: 0000 0000 0000 0000  0000 0000 0000 0000   |................|
> >> 00B76F20: 0000 0000 0000 0000  0000 0000 0000 0000   |................|
> >>
> >> but by the time the server gets to ProcXF86DRIOpenConnection, this structure
> >> has been trashed:
> >>
> >> DRIOpenConnection: pDRIPriv: 0xb76fc0, pDriverInfo: 0xb76e80, busIdString: 0x454d
> >> 00B76E80: E889 B700 C06E B700  0000 0000 0400 0000   |.....n..........|
> >> 00B76E90: FFFF FF7F FFFF FFFF  0000 0080 0000 0000   |................|
> >> 00B76EA0: 0200 0000 9018 0D00  DC18 0D00 0000 0000   |................|
> >> 00B76EB0: 2075 1D00 B88B B700  0000 0000 1100 0000   | u..............|
> >> 00B76EC0: 5345 5256 4552 5449  4D45 0000 2900 0000   |SERVERTIME..)...|
> >> 00B76ED0: 0000 0000 0000 0000  4C00 0000 00EC B000   |........L.......|
> >> 00B76EE0: 0000 0000 0000 0000  A95D 1A00 888B B700   |.........]......|
> >> 00B76EF0: 0100 0000 1900 0000  0000 0000 4C00 0000   |............L...|
> >> 00B76F00: 1600 0000 D06E B700  1800 0000 3900 0000   |.....n......9...|
> >> 00B76F10: 0100 0000 0000 0000  486F B700 8100 0000   |........Ho......|
> >> 00B76F20: 4000 0000 4100 0000  0000 0000 0000 0000   |@...A...........|
> >> ProcXF86DRIOpenConnection: busIdString = 0x454d
> >>
> >> I'm pretty sure that what's happening is near the end of AddScreen,
> >> there is a call to dixRegisterScreenPrivateKey() which in turn
> >> calls dixReallocPrivates() which seems to be relocating the DRIInfoRec
> >> but the pointers used by DRIOpenConnection() are not updated.  The old
> >> (non-relocated) structure gets reused and trashed and when DRIOpenConnection()
> >> it picks up garbage.
> >>
> >> I'm not sure what needs to change to fix this though.  Looking at the X server
> >> code, I didn't find a lot of differences in/around this code path.  What I do
> >> know is that reverting to xserver-xorg 1.18.4 absolutely works.
> >>
> >> I'm using Poky/Yocto + meta-freescale layers (both on master)
> >>   poky: 840e221ea7c35177fda37af618c4727fa7754789
> >>   meta-freescale: a99b95c899e6c20b9f46fa04766c155e3a32949a
> >>
> >> Has anyone else built X (not Wayland) recently using this codebase?  Anyone
> >> else having the same issues?
> >
> > Is no-one else but me seeing this issue?  If not, what could I be doing wrong?
> > I'm building the same images (same config, etc) that I've been using for [literally]
> > years and now it breaks with this version of the X server.
> >
> > At least an 'ack - I've read this and it's your problem' would be better
> > than total silence...
> >
> 
> 
> --
> ------------------------------------------------------------
> Gary Thomas                 |  Consulting for the
> MLB Associates              |    Embedded world
> ------------------------------------------------------------


More information about the meta-freescale mailing list