[PATCH 00/13] fbdev locking rework and deferred setup, take 2

John Stultz john.stultz at linaro.org
Tue Jun 27 23:02:02 UTC 2017


On Tue, Jun 27, 2017 at 7:59 AM, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
>
> Thanks to Liviu's help I realized that I fumbled the locking rework completely.
> This one here should be better, but somehow I'm having a real bad day today and
> I spent all day typing shit code, and then making it worse.
>
> This here seems to work at first glance, but please test and review carefully.

After some self-caused testing pain (somehow missed picking one of the
patches in mutt), I managed to get these tested w/ HiKey against
4.12-rc7.

Things seemed to work fairly well.

Though the one quirk I saw was that previously if I booted the device
w/o HDMI plugged in, it would boot up defaulting to 1024x768
resolution, and when I plugged in the HDMI cable, the monitor would
start up and use that resolution.

With your patchset, if I boot without the monitor attached,  it seems
no fb is created, so surfaceflinger crashes repeatedly trying to start
up.  Then when I do plug the montior in, I get the following crash:

[  106.503724] Unable to handle kernel NULL pointer dereference at
virtual address 00000038
[  106.512050] pgd = ffffff8008e89000
[  106.515596] [00000038] *pgd=0000000077ffe003,
*pud=0000000077ffe003, *pmd=0000000000000000
[  106.524050] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[  106.529678] CPU: 2 PID: 1184 Comm: kworker/2:2 Tainted: G        W
     4.12.0-rc7-00093-g42439fe-dirty #3054
[  106.539711] Hardware name: HiKey Development Board (DT)
[  106.544996] Workqueue: events adv7511_hpd_work
[  106.549484] task: ffffffc0753c3e80 task.stack: ffffffc074b0c000
[  106.555449] PC is at drm_sysfs_hotplug_event+0x34/0x58
[  106.560624] LR is at drm_sysfs_hotplug_event+0x34/0x58
[  106.565796] pc : [<ffffff8008536634>] lr : [<ffffff8008536634>]
pstate: 40000145
[  106.573221] sp : ffffffc074b0fd40
[  106.576562] x29: ffffffc074b0fd40 x28: 0000000000000000
[  106.581925] x27: ffffffc005f93d20 x26: ffffffc074d387b8
[  106.587288] x25: ffffffc0753c3e80 x24: ffffffc0747e3258
[  106.592650] x23: 0000000000000000 x22: ffffffc077f44a80
[  106.598012] x21: ffffffc077f46900 x20: ffffffc07441cd00
[  106.603373] x19: 0000000000000000 x18: 0000000000000000
[  106.608733] x17: 0000000000000000 x16: 0000000000000000
[  106.614093] x15: 00000018cc1b97ed x14: 0000000000000000
[  106.619453] x13: 0000000000000000 x12: 0000000000000000
[  106.624813] x11: 00000000000002e5 x10: 0000000000000880
[  106.630173] x9 : ffffffc074b0fa10 x8 : ffffffc0753c4760
[  106.635534] x7 : ffffffc077f3ec80 x6 : ffffffc077f3c090
[  106.640895] x5 : ffffff8008da0568 x4 : 0000000000000000
[  106.646254] x3 : 0000000000000000 x2 : ffffff8008c39d90
[  106.651613] x1 : 0000000000000001 x0 : ffffff8008c02fe8
[  106.656981] Process kworker/2:2 (pid: 1184, stack limit = 0xffffffc074b0c000)
[  106.664152] Stack: (0xffffffc074b0fd40 to 0xffffffc074b10000)
[  106.669940] fd40: ffffffc074b0fd70 ffffff800851d1ec
0000000000000000 ffffff80085c7b04
[  106.677813] fd60: ffffff8008c39d80 0000000000000000
ffffffc074b0fd90 ffffff8008550bd4
[  106.685687] fd80: ffffffc0747e3018 ffffff80080df688
ffffffc074b0fdc0 ffffff80080d0814
[  106.693561] fda0: 0000000000000000 ffffff8008a45eb8
ffffffc074b0fdc0 000000d0080d0808
[  106.701436] fdc0: ffffffc074b0fe00 ffffff80080d0a68
ffffffc07441cd00 ffffffc074a83a00
[  106.709310] fde0: ffffffc077f44a80 ffffffc07441cd30
ffffff8008d46000 ffffffc077f44aa0
[  106.717184] fe00: ffffffc074b0fe60 ffffff80080d6974
ffffffc074d38780 ffffffc074a83a00
[  106.725059] fe20: ffffff8008df9160 ffffffc0753c3e80
ffffff8008bf9528 ffffffc07441cd00
[  106.732929] fe40: ffffff80080d0a20 ffffffc074d387b8
ffffffc005f93d20 0000000000000000
[  106.740801] fe60: 0000000000000000 ffffff8008082ec0
ffffff80080d6878 ffffffc074a83a00
[  106.748671] fe80: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.756541] fea0: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.764411] fec0: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.772281] fee0: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.780151] ff00: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.788021] ff20: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.795889] ff40: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.803759] ff60: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.811629] ff80: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.819475] ffa0: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.827308] ffc0: 0000000000000000 0000000000000005
0000000000000000 0000000000000000
[  106.835143] ffe0: 0000000000000000 0000000000000000
0000000000000000 0000000000000000
[  106.842974] Call trace:
[  106.845422] Exception stack(0xffffffc074b0fb70 to 0xffffffc074b0fca0)
[  106.851866] fb60:
0000000000000000 0000008000000000
[  106.859701] fb80: ffffffc074b0fd40 ffffff8008536634
ffffffc074b0fba0 ffffff80085b6d88
[  106.867535] fba0: ffffffc074b0fbd0 ffffff8008700f4c
ffffffc0747e2818 0000000000000002
[  106.875370] fbc0: ffffffc0747e28b8 0000000000000002
ffffffc074b0fc20 ffffff80086fd5dc
[  106.883205] fbe0: ffffffc0747e28b8 0000000000000001
0000000000000002 ffffffc074b0fca0
[  106.891039] fc00: ffffffc074b0fc50 ffffff80086fb5c8
ffffff8008c02fe8 0000000000000001
[  106.898872] fc20: ffffff8008c39d90 0000000000000000
0000000000000000 ffffff8008da0568
[  106.906706] fc40: ffffffc077f3c090 ffffffc077f3ec80
ffffffc0753c4760 ffffffc074b0fa10
[  106.914540] fc60: 0000000000000880 00000000000002e5
0000000000000000 0000000000000000
[  106.922374] fc80: 0000000000000000 00000018cc1b97ed
0000000000000000 0000000000000000
[  106.930209] [<ffffff8008536634>] drm_sysfs_hotplug_event+0x34/0x58
[  106.936397] [<ffffff800851d1ec>] drm_kms_helper_hotplug_event+0x14/0x38
[  106.943015] [<ffffff8008550bd4>] adv7511_hpd_work+0x4c/0x60
[  106.948594] [<ffffff80080d0814>] process_one_work+0x114/0x320
[  106.954344] [<ffffff80080d0a68>] worker_thread+0x48/0x428
[  106.959748] [<ffffff80080d6974>] kthread+0xfc/0x128
[  106.964632] [<ffffff8008082ec0>] ret_from_fork+0x10/0x50
[  106.969949] Code: 913fa020 52800021 a9027fa3 97fff898 (f9401e60)
[  106.976112] ---[ end trace dd098614ee129219 ]---
[  107.016693] Kernel panic - not syncing: Fatal exception


I've got to dig a bit more here (probably something is wrong with the
bridge driver), but let me know if the lack of the 1024x768 default fb
is expected.

thanks
-john


More information about the dri-devel mailing list