All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Rob Clark <robdclark@gmail.com>, "Taneja, Archit" <archit@ti.com>
Cc: dri-devel <dri-devel@lists.freedesktop.org>
Subject: Multiple issues with omapdrm
Date: Wed, 5 Jun 2013 11:59:27 +0300	[thread overview]
Message-ID: <51AEFDEF.7060602@ti.com> (raw)


[-- Attachment #1.1: Type: text/plain, Size: 6102 bytes --]

Hi,

I did some testing with omapdrm on v3.10-rc1. Here are some issues I encountered.
For most of them I don't have any idea where to even start looking for a problem,
so I hope that you may have some ideas.


dispc_runtime_get/put used in irq context
=========================================

dispc_runtime_get/put are used in irq context in omap_irq.c. I can hack
around that with if (!in_atomic()), but I have no idea yet how to fix
it properly.

drm_crtc warning
================

I got this once when unloading the modules, but haven't happened since:

drm_crtc.c line 3869

	WARN_ON(!list_empty(&dev->mode_config.fb_list));

As it only happened once, maybe some kind of race.


omap_gem warning
================

This happens on module unload:

[   30.167480] ------------[ cut here ]------------
[   30.167724] WARNING: at drivers/gpu/drm/omapdrm/omap_gem.c:1318 omap_gem_free_object+0x24c/0x25c [omapdrm]()
[   30.182952] Modules linked in: omapdrm(-) drm_kms_helper drm panel_taal panel_tfp410 panel_generic_dpi omapdss
[   30.183166] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 3.10.0-rc1-00004-g8ed4760 #110
[   30.183166] Workqueue: omapdrm apply_worker [omapdrm]
[   30.207641] Backtrace: 
[   30.210296] [<c00189ac>] (dump_backtrace+0x0/0x10c) from [<c0018b48>] (show_stack+0x18/0x1c)
[   30.219299]  r6:bf0e5988 r5:00000009 r4:00000000 r3:eb872080
[   30.225433] [<c0018b30>] (show_stack+0x0/0x1c) from [<c0520c04>] (dump_stack+0x20/0x28)
[   30.234039] [<c0520be4>] (dump_stack+0x0/0x28) from [<c0041fb8>] (warn_slowpath_common+0x54/0x74)
[   30.243530] [<c0041f64>] (warn_slowpath_common+0x0/0x74) from [<c0041ffc>] (warn_slowpath_null+0x24/0x2c)
[   30.243774]  r8:ebfab99c r7:ebb41800 r6:ebb41830 r5:ebefce40 r4:ebefce40
r3:00000009
[   30.262176] [<c0041fd8>] (warn_slowpath_null+0x0/0x2c) from [<bf0e5988>] (omap_gem_free_object+0x24c/0x25c [omapdrm])
[   30.273498] [<bf0e573c>] (omap_gem_free_object+0x0/0x25c [omapdrm]) from [<bf080c0c>] (drm_gem_object_free+0x30/0x38 [drm])
[   30.285675] [<bf080bdc>] (drm_gem_object_free+0x0/0x38 [drm]) from [<bf0e196c>] (omap_plane_post_apply+0x108/0x10c [omapdrm])
[   30.285675] [<bf0e1864>] (omap_plane_post_apply+0x0/0x10c [omapdrm]) from [<bf0e100c>] (apply_worker+0x68/0x188 [omapdrm])
[   30.309509]  r6:ebae5c6c r5:ebae5c5c r4:ebae5c5c
[   30.312042] [<bf0e0fa4>] (apply_worker+0x0/0x188 [omapdrm]) from [<c005ef10>] (process_one_work+0x1b8/0x4e8)
[   30.325012] [<c005ed58>] (process_one_work+0x0/0x4e8) from [<c005f654>] (worker_thread+0x138/0x388)
[   30.325378] [<c005f51c>] (worker_thread+0x0/0x388) from [<c0066070>] (kthread+0xac/0xb8)
[   30.343292] [<c0065fc4>] (kthread+0x0/0xb8) from [<c00146e8>] (ret_from_fork+0x14/0x2c)
[   30.351837]  r7:00000000 r6:00000000 r5:c0065fc4 r4:eb843d54
[   30.352111] ---[ end trace 78317663d3b4807c ]---


Deadlock at module unload
=========================
When removing the modules, there's a dealock. This is the last line printed:

[   30.399200] [drm] Module unloaded

Then, when the deadlock detection kicks in:

[  240.962432] INFO: task rmmod:894 blocked for more than 120 seconds.
[  240.962432] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  240.977508] rmmod           D c0524964     0   894    884 0x00000000
[  240.981719] Backtrace: 
[  240.987274] [<c05245ec>] (__schedule+0x0/0x7e8) from [<c0524eb0>] (schedule+0x38/0x78)
[  240.995819] [<c0524e78>] (schedule+0x0/0x78) from [<c05251ac>] (schedule_preempt_disabled+0x28/0x38)
[  241.005706] [<c0525184>] (schedule_preempt_disabled+0x0/0x38) from [<c05238c4>] (mutex_lock_nested+0x1b8/0x3a8)
[  241.016693]  r4:c07f5bf8 r3:eb978180
[  241.020812] [<c052370c>] (mutex_lock_nested+0x0/0x3a8) from [<c033c9d0>] (driver_detach+0x4c/0xc0)
[  241.021026] [<c033c984>] (driver_detach+0x0/0xc0) from [<c033bd24>] (bus_remove_driver+0x94/0xfc)
[  241.040100]  r6:c07f5b38 r5:bf0ec410 r4:00000000 r3:00000000
[  241.042633] [<c033bc90>] (bus_remove_driver+0x0/0xfc) from [<c033d054>] (driver_unregister+0x58/0x78)
[  241.056060]  r6:c07c28a4 r5:bf0ec410 r4:00000000 r3:eb978180
[  241.062164] [<c033cffc>] (driver_unregister+0x0/0x78) from [<c033ddc0>] (platform_driver_unregister+0x14/0x18)
[  241.072875]  r5:bf0ebc18 r4:c07c2860
[  241.075439] [<c033ddac>] (platform_driver_unregister+0x0/0x18) from [<bf0df2c8>] (pdev_remove+0x48/0x54 [omapdrm])
[  241.087921] [<bf0df280>] (pdev_remove+0x0/0x54 [omapdrm]) from [<c033dc38>] (platform_drv_remove+0x20/0x24)
[  241.098327]  r4:c07c2870 r3:bf0df280
[  241.100860] [<c033dc18>] (platform_drv_remove+0x0/0x24) from [<c033bfc4>] (__device_release_driver+0x78/0xd4)
[  241.112792] [<c033bf4c>] (__device_release_driver+0x0/0xd4) from [<c033ca40>] (driver_detach+0xbc/0xc0)
[  241.113159]  r5:bf0ebc18 r4:c07c2870
[  241.122833] [<c033c984>] (driver_detach+0x0/0xc0) from [<c033bd24>] (bus_remove_driver+0x94/0xfc)
[  241.136108]  r6:c07f5b38 r5:bf0ebc18 r4:00000000 r3:00000000
[  241.142211] [<c033bc90>] (bus_remove_driver+0x0/0xfc) from [<c033d054>] (driver_unregister+0x58/0x78)
[  241.152069]  r6:00000880 r5:bf0ebc18 r4:00000000 r3:00000000
[  241.153472] [<c033cffc>] (driver_unregister+0x0/0x78) from [<c033ddc0>] (platform_driver_unregister+0x14/0x18)
[  241.168823]  r5:bf0ec4a0 r4:00000000
[  241.171356] [<c033ddac>] (platform_driver_unregister+0x0/0x18) from [<bf0e9bb8>] (omap_drm_fini+0x28/0x3c [omapdrm])
[  241.183990] [<bf0e9b90>] (omap_drm_fini+0x0/0x3c [omapdrm]) from [<c009ef10>] (SyS_delete_module+0x154/0x288)
[  241.194610] [<c009edbc>] (SyS_delete_module+0x0/0x288) from [<c0014620>] (ret_fast_syscall+0x0/0x48)
[  241.204345]  r7:00000081 r6:006d7264 r5:70616d6f r4:0001aac4
[  241.206726] 3 locks held by rmmod/894:
[  241.214416]  #0:  (&__lockdep_no_validate__){......}, at: [<c033c9d0>] driver_detach+0x4c/0xc0
[  241.223693]  #1:  (&__lockdep_no_validate__){......}, at: [<c033c9dc>] driver_detach+0x58/0xc0
[  241.232940]  #2:  (&__lockdep_no_validate__){......}, at: [<c033c9d0>] driver_detach+0x4c/0xc0

 Tomi


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 901 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

             reply	other threads:[~2013-06-05  9:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-05  8:59 Tomi Valkeinen [this message]
2013-06-05 10:43 ` Multiple issues with omapdrm Rob Clark
2013-06-05 10:55   ` Tomi Valkeinen
2013-06-05 10:57   ` Rob Clark
2013-06-05 11:35     ` Tomi Valkeinen
2013-06-05 11:52       ` Rob Clark
2013-06-05 12:16         ` Tomi Valkeinen
2013-06-05 14:58           ` Rob Clark
2013-06-06  7:14             ` Tomi Valkeinen
2013-06-06 11:25               ` Rob Clark
2013-06-06 19:35                 ` Dave Airlie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51AEFDEF.7060602@ti.com \
    --to=tomi.valkeinen@ti.com \
    --cc=archit@ti.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=robdclark@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.