[Mesa-users] Testing VC4 on rpi2 with wayland and weston, weston fail to start with drm (trace translated with addr2line included)
Eric Anholt
eric at anholt.net
Thu Dec 17 11:01:47 PST 2015
Fabio Fantoni <fabio.fantoni at m2r.biz> writes:
> Il 12/11/2015 11:29, Fabio Fantoni ha scritto:
>>
>>
>> Il 06/11/2015 14:15, Fabio Fantoni ha scritto:
>>>
>>>
>>> Il 05/11/2015 03:36, Eric Anholt ha scritto:
>>>> Fabio Fantoni <fabio.fantoni at m2r.biz> writes:
>>>>
>>>>> Il 30/10/2015 18:49, Eric Anholt ha scritto:
>>>>>> Fabio Fantoni <fabio.fantoni at m2r.biz> writes:
>>>>>>
>>>>>>> Il 25/10/2015 15:32, Fabio Fantoni ha scritto:
>>>>>>>> Il 07/10/2015 00:01, Eric Anholt ha scritto:
>>>>>>>>> Fabio Fantoni <fabio.fantoni at m2r.biz> writes:
>>>>>>>>>
>>>>>>>>>> Il 03/10/2015 00:50, Eric Anholt ha scritto:
>>>>>>>>>>> Fabio Fantoni <fabio.fantoni at m2r.biz> writes:
>>>>>>>>>>>
>>>>>>>>>>>> Hi, I want try VC4 on rpi2 with wayland on debian (I used Sid).
>>>>>>>>>>>> Following this howto:
>>>>>>>>>>>> http://dri.freedesktop.org/wiki/VC4/
>>>>>>>>>>>> I rebuild the kernel from
>>>>>>>>>>>> https://github.com/anholt/linux/tree/vc4-kms-v3d-rpi2
>>>>>>>>>>>> Base config modified with: CONFIG_DRM_VC4=y and
>>>>>>>>>>>> CONFIG_CMA_SIZE_MBYTES=128, full .config in attachment.
>>>>>>>>>>>> I did the 2 additions to rpi2 config.txt (full in attachment).
>>>>>>>>>>>> New kernel is working, in kern.log about drm I saw only this
>>>>>>>>>>>> about
>>>>>>>>>>>> drm:
>>>>>>>>>>>> Oct 1 11:11:16 jessie-rpi kernel: [ 1.577017] [drm]
>>>>>>>>>>>> Initialized drm
>>>>>>>>>>>> 1.1.0 20060810
>>>>>>>>>>>> I suppose that compiling with CONFIG_DRM_VC4=y should be
>>>>>>>>>>>> present
>>>>>>>>>>>> but I
>>>>>>>>>>>> not saw line about.
>>>>>>>>>>> You should also have various lines in dmesg about:
>>>>>>>>>>>
>>>>>>>>>>> [ 3.185410] vc4-drm soc:vc4 at 7e4c0000: bound 20902000.hdmi
>>>>>>>>>>> (ops
>>>>>>>>>>> vc4_hdmi_ops)
>>>>>>>>>>> [ 3.200606] vc4-drm soc:vc4 at 7e4c0000: bound
>>>>>>>>>>> 20206000.pixelvalve
>>>>>>>>>>> (ops vc4_crtc_ops)
>>>>>>>>>>> [ 3.220583] vc4-drm soc:vc4 at 7e4c0000: bound
>>>>>>>>>>> 20207000.pixelvalve
>>>>>>>>>>> (ops vc4_crtc_ops)
>>>>>>>>>>> [ 3.232884] vc4-drm soc:vc4 at 7e4c0000: bound
>>>>>>>>>>> 20807000.pixelvalve
>>>>>>>>>>> (ops vc4_crtc_ops)
>>>>>>>>>>> [ 3.250938] vc4-drm soc:vc4 at 7e4c0000: bound 20400000.hvs (ops
>>>>>>>>>>> vc4_hvs_ops)
>>>>>>>>>>> [ 3.263385] [drm] Supports vblank timestamp caching Rev 2
>>>>>>>>>>> (21.10.2013).
>>>>>>>>>>> [ 3.270162] [drm] No driver support for vblank timestamp
>>>>>>>>>>> query.
>>>>>>>>>>> [ 3.470743] Console: switching to colour frame buffer
>>>>>>>>>>> device 240x67
>>>>>>>>>>> [ 3.540179] vc4-drm soc:vc4 at 7e4c0000: fb0: frame buffer
>>>>>>>>>>> device
>>>>>>>>>>>
>>>>>>>>>>> so something is going wrong and keeping you from probing.
>>>>>>>>>>> There's at
>>>>>>>>>>> least one problem in your config -- you can't have
>>>>>>>>>>>
>>>>>>>>>>> CONFIG_FB_BCM2708=y
>>>>>>>>>>>
>>>>>>>>>>> since you're trying to run a proper graphics driver,
>>>>>>>>>>> instead. I don't
>>>>>>>>>>> think that would keep vc4 from probing, though. Maybe you
>>>>>>>>>>> wouldn't
>>>>>>>>>>> have
>>>>>>>>>>> hit any of those "bound" messages because HDMI fails first
>>>>>>>>>>> due to your
>>>>>>>>>>> config being missing:
>>>>>>>>>>>
>>>>>>>>>>> CONFIG_I2C_BCM2835=y
>>>>>>>>>>>
>>>>>>>>>>> I've added that to the wiki page.
>>>>>>>>>> Thanks for your reply and all your work.
>>>>>>>>>> I recompiled the kernel and retried, now screen show only and
>>>>>>>>>> always
>>>>>>>>>> "initial image" but system with ssh is working.
>>>>>>>>>> Strange thing is that I not found vc4-drm lines also in this
>>>>>>>>>> case.
>>>>>>>>>> Actual kernel .config and kern.log in attachment.
>>>>>>>>>> I did something missed or wrong or there is problem or an
>>>>>>>>>> unexpected
>>>>>>>>>> case?
>>>>>>>>>> I suppose is probable that also kernel parameters may change
>>>>>>>>>> something
>>>>>>>>>> but I don't know if I must change something, actual cmdline.txt.
>>>>>>>>>> config.txt already attached in previous mail is ok or other
>>>>>>>>>> changes not
>>>>>>>>>> present in wiki are present?
>>>>>>>>>> I also saw the strange thing that kernel is launched with
>>>>>>>>>> addition
>>>>>>>>>> parameters (from kern.log) but I not know how and if can be a
>>>>>>>>>> problem:
>>>>>>>>>>> Oct 3 17:22:02 jessie-rpi kernel: [ 0.000000] Kernel command
>>>>>>>>>>> line:
>>>>>>>>>>> dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1360
>>>>>>>>>>> bcm2708_fb.fbheight=768
>>>>>>>>>>> bcm2708.boardrev=0x2000010 bcm2708.serial=0x968d5adc
>>>>>>>>>>> smsc95xx.macaddr=B8:27:EB:8D:5A:DC bcm2708_fb.fbswap=1
>>>>>>>>>>> bcm2708.disk_led_gpio=47 bcm2708.disk_led_active_low=0
>>>>>>>>>>> sdhci-bcm2708.emmc_clock_freq=250000000
>>>>>>>>>>> vc_mem.mem_base=0x3dc00000
>>>>>>>>>>> vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0
>>>>>>>>>>> console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootwait
>>>>>>>>>>> net.ifnames=1
>>>>>>>>>> If you need more informations or tests tell me and I'll post
>>>>>>>>>> them.
>>>>>>>>> Looking through the logs again, I'm not sure what's going on.
>>>>>>>>> At this
>>>>>>>>> point I think I'd start adding DRM_INFO()s in vc4_drm_register(),
>>>>>>>>> vc4_platform_drm_probe() and vc4_drm_bind() to start bisecting
>>>>>>>>> where
>>>>>>>>> things are going wrong.
>>>>>>>> I saw update on vc4-kms-v3d-rpi2 branch, I build it and tried but I
>>>>>>>> had the same result.
>>>>>>>>
>>>>>>>> I created the .config with:
>>>>>>>> make bcm2709_defconfig
>>>>>>>> and did the changes of the wiki, full .config used is in
>>>>>>>> attachment.
>>>>>>>> looking the syslog (see attachment) I not saw vc4 even if
>>>>>>>> enabled, I
>>>>>>>> suppose there is still something wrong or missed in .config.
>>>>>>>>
>>>>>>>> Thanks for any reply and sorry for my bad english.
>>>>>>>>
>>>>>>> I retried with many other changes, in latest kernel build (config in
>>>>>>> attachment) I was able to boot with screen output working and
>>>>>>> something
>>>>>>> about vc4 in logs but there are errors about it like:
>>>>>>>> Oct 28 11:44:19 jessie-rpi kernel: [ 3.695517] vc4-drm
>>>>>>>> soc:gpu at 7e4c0000: failed to bind 3f902000.hdmi (ops
>>>>>>>> vc4_hdmi_ops): -517
>>>>>>>> Oct 28 11:44:19 jessie-rpi kernel: [ 3.713539] vc4-drm
>>>>>>>> soc:gpu at 7e4c0000: master bind failed: -517
>>>>>> Those errors are the normal -EPROBE_DEFERs because Linux sucks at
>>>>>> device
>>>>>> probe ordering. You get a successful DRM probe a moment later
>>>>>> when I2C2
>>>>>> probes.
>>>>>>
>>>>>>> Full syslog in attachment.
>>>>>>> I was able to boot weston with vc4 drm but screen output always
>>>>>>> freeze
>>>>>>> after terminal window draw.
>>>>>>> From log I saw a segfault but trying to take a backtrace with gdb
>>>>>>> strangely fails, weston log in attachment.
>>>>>>>
>>>>>>> If you need more informations/tests tell me and I'll post them.
>>>>>> Next step is to figure out how to get a good backtrace from gdb.
>>>>>>
>>>>> I tried to update all debian sid packages and rebuild update mesa
>>>>> 11.0.4-1 packages with vc4 with same result.
>>>>> With gdbserver connecting to it with ssh I'm able to have gdb working
>>>>> until segfault but when I do "bt full" for take the backtrace show
>>>>> only
>>>>> these kernel messages:
>>>>>> Message from syslogd at jessie-rpi at Nov 1 11:18:34 ...
>>>>>> kernel:[ 487.628849] Internal error: Oops: 807 [#1] PREEMPT SMP
>>>>>> ARM
>>>>>> ...
>>>>>>
>>>>> I not other way to take a backtrace.
>>>>> Can you post your kernel's .config for rpi2 please? I suppose there is
>>>>> still something different that cause problem.
>>>> I've updated http://dri.freedesktop.org/wiki/VC4/ to have links to
>>>> .configs.
>>>
>>> I rebuilt kernel with your .config and added cma=256M at 512M to
>>> cmdline.txt but happen the same problem and I'm still unable to take
>>> a backtrace with gdb :(
>>>> Message from syslogd at jessie-rpi at Nov 6 14:09:10 ...
>>>> kernel:[ 283.621660] Internal error: Oops: 807 [#1] PREEMPT SMP ARM
>>>> ...
>>
>> I rebuilt the kernel adding CONFIG_DEBUG_INFO=y to .config and I
>> translated the new trace with addr2line, didn't work for any address
>> (I suppose related to other softwares) but probably can be useful see
>> the kernel lines called:
>>
>> kernel:[ 798.087325] Internal error: Oops: 807 [#1] PREEMPT SMP ARM
>>
>> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
>> kernel:[ 798.164526] Process weston (pid: 616, stack limit =
>> 0xb656a210)
>>
>> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
>> kernel:[ 798.170443] Stack: (0xb656bba0 to 0xb656c000)
>>
>> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
>> kernel:[ 798.174810] bba0: b656bbdc b656bbb0 80482938 80486fe4
>> ba1eb800 b6590dc0 00000002 ba375e10
>>
>> for addr in b656bbdc b656bbb0 80482938 80486fe4 ba1eb800 b6590dc0
>> 00000002 ba375e10; do addr2line -e vmlinux -if $addr; done
>> ??
>> ??:0
>> ??
>> ??:0
>> vc4_crtc_atomic_flush
>> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_crtc.c:388
>> vc4_plane_write_dlist
>> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_plane.c:257
>> ??
>> ??:0
>> ??
>> ??:0
>> __vectors_start
>> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
>> ??
>> ??:0
>>
>> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
>> kernel:[ 798.182990] bbc0: b964c480 80988e30 00000000 b6590dc0
>> b656bc04 b656bbe0 8045804c 804828c4
>>
>> for addr in b964c480 80988e30 00000000 b6590dc0 b656bc04 b656bbe0
>> 8045804c 804828c4; do addr2line -e vmlinux -if $addr; done
>> ??
>> ??:0
>> __start_rodata
>> .tmp_kallsyms2.o:?
>> __vectors_start
>> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
>> ??
>> ??:0
>> ??
>> ??:0
>> ??
>> ??:0
>> drm_atomic_helper_commit_planes
>> /root/linux/vc4/drivers/gpu/drm/drm_atomic_helper.c:1179
>> vc4_crtc_atomic_flush
>> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_crtc.c:366
>>
>> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
>> kernel:[ 798.191169] bbe0: b6590dc0 ba1eb800 b65cd5c0 b985ec10
>> b65cd5c0 00000000 b656bc24 b656bc08
>>
>> for addr in b6590dc0 ba1eb800 b65cd5c0 b985ec10 b65cd5c0 00000000
>> b656bc24 b656bc08; do addr2line -e vmlinux -if $addr; done
>> ??
>> ??:0
>> ??
>> ??:0
>> ??
>> ??:0
>> ??
>> ??:0
>> ??
>> ??:0
>> __vectors_start
>> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
>> ??
>> ??:0
>> ??
>> ??:0
>>
>> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
>> kernel:[ 798.199349] bc00: 80483be8 80457ebc ffffffff ffffffff
>> 00000000 00000000 b656bc64 b656bc28
>>
>> for addr in 80483be8 80457ebc ffffffff ffffffff 00000000 00000000
>> b656bc64 b656bc28; do addr2line -e vmlinux -if $addr; done
>> vc4_atomic_complete_commit
>> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_kms.c:50
>> drm_atomic_helper_commit_planes
>> /root/linux/vc4/drivers/gpu/drm/drm_atomic_helper.c:1134
>> ??
>> ??:0
>> ??
>> ??:0
>> __vectors_start
>> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
>> __vectors_start
>> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
>> ??
>> ??:0
>> ??
>> ??:0
>>
>> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
>> kernel:[ 798.207529] bc20: 80483d54 80483bb8 ffffffff ffffffff
>> 00000000 ba1eb800 b964c380 b6590dc0
>>
>> for addr in 80483d54 80483bb8 ffffffff ffffffff 00000000 ba1eb800
>> b964c380 b6590dc0; do addr2line -e vmlinux -if $addr; done
>> vc4_atomic_commit
>> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_kms.c:171
>> vc4_atomic_complete_commit
>> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_kms.c:41
>> ??
>> ??:0
>> ??
>> ??:0
>> __vectors_start
>> /root/linux/vc4/arch/arm/kernel/entry-armv.S:1221
>> ??
>> ??:0
>> ??
>> ??:0
>> ??
>> ??:0
>>
>> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
>> kernel:[ 798.215709] bc40: ba1eb800 b9af8410 b668c900 0000003c
>> b964c380 00400000 b656bc7c b656bc68
>>
>> Message from syslogd at jessie-rpi at Nov 12 10:35:37 ...
>> kernel:[ 798.223889] bc60: 8047f848 80483c34 b6590dc0 ba375e10
>> b656bcb4 b656bc80 804590d0 8047f800
>>
>> for addr in 8047f848 80483c34 b6590dc0 ba375e10 b656bcb4 b656bc80
>> 804590d0 8047f800; do addr2line -e vmlinux -if $addr; done
>> drm_atomic_commit
>> /root/linux/vc4/drivers/gpu/drm/drm_atomic.c:1259
>> vc4_atomic_commit
>> /root/linux/vc4/drivers/gpu/drm/vc4/vc4_kms.c:99
>> ??
>> ??:0
>> ??
>> ??:0
>> ??
>> ??:0
>> ??
>> ??:0
>> drm_atomic_helper_update_plane
>> /root/linux/vc4/drivers/gpu/drm/drm_atomic_helper.c:1400
>> drm_atomic_commit
>> /root/linux/vc4/drivers/gpu/drm/drm_atomic.c:1248
>>
>> At the end of kern.log I found this:
>> Nov 12 10:35:37 jessie-rpi kernel: [ 798.065866] Unable to handle
>> kernel paging request at virtual address bb8d6000
>> Nov 12 10:35:37 jessie-rpi kernel: [ 798.073629] pgd = b871c000
>>
>
> I saw this PR where wrote there are a stability improvements:
> https://github.com/raspberrypi/linux/pull/1228
> I tried the updated kernel and mesa from
> https://github.com/anholt/mesa/tree/11.1-vc4 but the same hang problem
> still happen :(
> What else can I do?
That was about 3D, while you're crashing in modesetting somewhere.
Generally my approach for this kind of thing is to start decorating the
code that's crashing with DRM_INFO()s to find what's going wrong.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-users/attachments/20151217/c0534c73/attachment-0001.sig>
More information about the mesa-users
mailing list