Hi,
On 16/04/15 01:09, Laurent Pinchart wrote:
Hello,
This patch set converts the omapdrm to the atomic update API in 31 small(ish) and hopefully reviewable steps.
Thanks! I'll start reviewing the patches later this week.
The series is based on the latest drm/next branch and depends on the pending "drm: omapdrm: Store the rotation property in dev->mode_config" patch by Daniel Vetter.
The omapdrm loses support for its custom fences in the process. This isn't deemed to be an issue, as the custom fences API is used by the SGX driver only, which requires out-of-tree patches anyway. Fences support will be reimplemented at a later point on top of the atomic updates conversion using the mainline fence API.
One known issue is a race condition between asynchronous commits and drm_release() which can trigger a warning if a commit is applied between the drm_events_release() call and the WARN_ON(!list_empty(&file_priv->event_list)). Investigation is ongoing to find out the best way to fix the problem, the problem seems not to be limited to omapdrm (but can be more or less difficult to reproduce depending on the driver). Ideas would be welcome, I've CC'ed maintainers of possibly affected drivers.
There's not much else to be said, details are explained in individual patches.
The patches can be found in my git tree at
git://linuxtv.org/pinchartl/fbdev.git omapdrm/next
I ran a few quick tests with your branch, on Pandaboard.
Something related to vblanks/timing is broken, and I can only get half the fps. The "db" test app from my omapdrm-tests shows this easily.
I also got a few warnings (below), but that was before I applied your "drm: omapdrm: Support unlinking page flip events prematurely" patch. After that I didn't see those anymore.
I didn't see any other issues, but my tests were quite quick and simple.
Tomi
[ 190.434112] ------------[ cut here ]------------ [ 190.439575] WARNING: CPU: 0 PID: 175 at drivers/gpu/drm/omapdrm/omap_gem.c:1292 omap_gem_free_object+0x260/0x278 [omapdrm]() [ 190.451385] Modules linked in: omapdrm drm_kms_helper drm cfbfillrect cfbimgblt cfbcopyarea panel_nec_nl8048hl11 panel_sony_acx565akm panel_lgphilips_lb035q02 panel_dsi_cm pan el_dpi connector_analog_tv connector_hdmi connector_dvi encoder_tpd12s015 encoder_tfp410 omapdss [ 190.475860] CPU: 0 PID: 175 Comm: producer Not tainted 4.0.0-rc7-00759-g7290d47d0475 #4 [ 190.485198] Hardware name: Generic OMAP4 (Flattened Device Tree) [ 190.485626] Backtrace: [ 190.493469] [<c00137dc>] (dump_backtrace) from [<c00139f0>] (show_stack+0x18/0x1c) [ 190.502075] r6:c0a07598 r5:c0a07598 r4:00000000 r3:00000000 [ 190.505676] [<c00139d8>] (show_stack) from [<c068bf8c>] (dump_stack+0xa4/0xd4) [ 190.515686] [<c068bee8>] (dump_stack) from [<c0045084>] (warn_slowpath_common+0x84/0xc0) [ 190.524230] r6:0000050c r5:bf145890 r4:00000000 r3:ed148b80 [ 190.526794] [<c0045000>] (warn_slowpath_common) from [<c0045164>] (warn_slowpath_null+0x24/0x2c) [ 190.539459] r8:edac6678 r7:edf9eb98 r6:ee6b7800 r5:ed1b689c r4:ee713b80 [ 190.545288] [<c0045140>] (warn_slowpath_null) from [<bf145890>] (omap_gem_free_object+0x260/0x278 [omapdrm]) [ 190.556945] [<bf145630>] (omap_gem_free_object [omapdrm]) from [<bf0ae0bc>] (drm_gem_object_free+0x30/0x38 [drm]) [ 190.567993] r9:00000010 r8:edac6678 r7:edf9eb98 r6:ee2c2b10 r5:ee6b7834 r4:ee713b80 [ 190.575134] [<bf0ae08c>] (drm_gem_object_free [drm]) from [<bf146154>] (omap_gem_dmabuf_release+0xa8/0xb4 [omapdrm]) [ 190.587432] [<bf1460ac>] (omap_gem_dmabuf_release [omapdrm]) from [<c04211e0>] (dma_buf_release+0x54/0x17c) [ 190.597717] r5:00000000 r4:ee60e800 [ 190.601501] [<c042118c>] (dma_buf_release) from [<c016ba6c>] (__fput+0x9c/0x1ec) [ 190.609283] r9:00000010 r8:edac6678 r7:edf9eb98 r6:ee2c2b10 r5:edac6678 r4:ee6fce80 [ 190.614654] [<c016b9d0>] (__fput) from [<c016bc24>] (____fput+0x10/0x14) [ 190.619750] r10:ed148b80 r9:00000001 r8:00000000 r7:ed148b80 r6:c0a53738 r5:ed02ce40 [ 190.632812] r4:ed149084 [ 190.635467] [<c016bc14>] (____fput) from [<c006099c>] (task_work_run+0xbc/0x100) [ 190.643432] [<c00608e0>] (task_work_run) from [<c0047b20>] (do_exit+0x390/0xb00) [ 190.651214] r8:ebc16658 r7:ebc16600 r6:b6f75750 r5:c0a402c4 r4:ed14909c r3:0000003c [ 190.654876] [<c0047790>] (do_exit) from [<c0048314>] (do_group_exit+0x48/0xc4) [ 190.667144] r7:000000f8 [ 190.670074] [<c00482cc>] (do_group_exit) from [<c00483a8>] (__wake_up_parent+0x0/0x28) [ 190.678466] r6:b6f75750 r5:00000000 r4:00000001 r3:ffffffff [ 190.684753] [<c0048390>] (SyS_exit_group) from [<c000f880>] (ret_fast_syscall+0x0/0x4c) [ 190.693237] ---[ end trace 0f3a4a8e4c514be3 ]---
[ 226.385437] ------------[ cut here ]------------ [ 226.385437] WARNING: CPU: 0 PID: 185 at drivers/gpu/drm/drm_fops.c:459 drm_release+0x418/0x464 [drm]() [ 226.385437] Modules linked in: omapdrm drm_kms_helper drm cfbfillrect cfbimgblt cfbcopyarea panel_nec_nl8048hl11 panel_sony_acx565akm panel_lgphilips_lb035q02 panel_dsi_cm pan el_dpi connector_analog_tv connector_hdmi connector_dvi encoder_tpd12s015 encoder_tfp410 omapdss [ 226.425781] CPU: 0 PID: 185 Comm: consumer Tainted: G W 4.0.0-rc7-00759-g7290d47d0475 #4 [ 226.435668] Hardware name: Generic OMAP4 (Flattened Device Tree) [ 226.441986] Backtrace: [ 226.442413] [<c00137dc>] (dump_backtrace) from [<c00139f0>] (show_stack+0x18/0x1c) [ 226.452545] r6:c0a07598 r5:c0a07598 r4:00000000 r3:00000000 [ 226.456451] [<c00139d8>] (show_stack) from [<c068bf8c>] (dump_stack+0xa4/0xd4) [ 226.466156] [<c068bee8>] (dump_stack) from [<c0045084>] (warn_slowpath_common+0x84/0xc0) [ 226.474700] r6:000001cb r5:bf0ad8ac r4:00000000 r3:e380a280 [ 226.475097] [<c0045000>] (warn_slowpath_common) from [<c0045164>] (warn_slowpath_null+0x24/0x2c) [ 226.489959] r8:e57c52f4 r7:ee6b7834 r6:ee6b7800 r5:e57c52f8 r4:e57c5200 [ 226.494720] [<c0045140>] (warn_slowpath_null) from [<bf0ad8ac>] (drm_release+0x418/0x464 [drm]) [ 226.506378] [<bf0ad494>] (drm_release [drm]) from [<c016ba6c>] (__fput+0x9c/0x1ec) [ 226.506896] r10:00000000 r9:00000008 r8:ed34d838 r7:edf3c240 r6:ee698910 r5:ed34d838 [ 226.520416] r4:ee762d40 [ 226.525451] [<c016b9d0>] (__fput) from [<c016bc24>] (____fput+0x10/0x14) [ 226.525573] r10:e380a280 r9:00000001 r8:00000000 r7:e380a280 r6:c0a53738 r5:ee6f4680 [ 226.535339] r4:e380a784 [ 226.543457] [<c016bc14>] (____fput) from [<c006099c>] (task_work_run+0xbc/0x100) [ 226.551239] [<c00608e0>] (task_work_run) from [<c0047b20>] (do_exit+0x390/0xb00) [ 226.559020] r8:e57c5658 r7:e57c5600 r6:b6f46750 r5:c0a402c4 r4:e380a79c r3:0000003d [ 226.567230] [<c0047790>] (do_exit) from [<c0048314>] (do_group_exit+0x48/0xc4) [ 226.574829] r7:000000f8 [ 226.575164] [<c00482cc>] (do_group_exit) from [<c00483a8>] (__wake_up_parent+0x0/0x28) [ 226.585845] r6:b6f46750 r5:00000001 r4:00000001 r3:ffffffff [ 226.586181] [<c0048390>] (SyS_exit_group) from [<c000f880>] (ret_fast_syscall+0x0/0x4c) [ 226.600250] ---[ end trace 0f3a4a8e4c514be4 ]---