From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomi Valkeinen Subject: Multiple issues with omapdrm Date: Wed, 5 Jun 2013 11:59:27 +0300 Message-ID: <51AEFDEF.7060602@ti.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1380991300==" Return-path: Received: from arroyo.ext.ti.com (arroyo.ext.ti.com [192.94.94.40]) by gabe.freedesktop.org (Postfix) with ESMTP id 2D943E63A9 for ; Wed, 5 Jun 2013 02:04:36 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Rob Clark , "Taneja, Archit" Cc: dri-devel List-Id: dri-devel@lists.freedesktop.org --===============1380991300== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="----enig2RJGPWBAEOHMSROLBTGEU" ------enig2RJGPWBAEOHMSROLBTGEU Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, I did some testing with omapdrm on v3.10-rc1. Here are some issues I enco= untered. 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 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 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 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 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 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D This happens on module unload: [ 30.167480] ------------[ cut here ]------------ [ 30.167724] WARNING: at drivers/gpu/drm/omapdrm/omap_gem.c:1318 omap_g= em_free_object+0x24c/0x25c [omapdrm]() [ 30.182952] Modules linked in: omapdrm(-) drm_kms_helper drm panel_taa= l panel_tfp410 panel_generic_dpi omapdss [ 30.183166] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 3.10.0-rc1-00= 004-g8ed4760 #110 [ 30.183166] Workqueue: omapdrm apply_worker [omapdrm] [ 30.207641] Backtrace:=20 [ 30.210296] [] (dump_backtrace+0x0/0x10c) from [] = (show_stack+0x18/0x1c) [ 30.219299] r6:bf0e5988 r5:00000009 r4:00000000 r3:eb872080 [ 30.225433] [] (show_stack+0x0/0x1c) from [] (dump= _stack+0x20/0x28) [ 30.234039] [] (dump_stack+0x0/0x28) from [] (warn= _slowpath_common+0x54/0x74) [ 30.243530] [] (warn_slowpath_common+0x0/0x74) from [] (warn_slowpath_null+0x24/0x2c) [ 30.243774] r8:ebfab99c r7:ebb41800 r6:ebb41830 r5:ebefce40 r4:ebefce= 40 r3:00000009 [ 30.262176] [] (warn_slowpath_null+0x0/0x2c) from [] (omap_gem_free_object+0x24c/0x25c [omapdrm]) [ 30.273498] [] (omap_gem_free_object+0x0/0x25c [omapdrm]) fr= om [] (drm_gem_object_free+0x30/0x38 [drm]) [ 30.285675] [] (drm_gem_object_free+0x0/0x38 [drm]) from [] (omap_plane_post_apply+0x108/0x10c [omapdrm]) [ 30.285675] [] (omap_plane_post_apply+0x0/0x10c [omapdrm]) f= rom [] (apply_worker+0x68/0x188 [omapdrm]) [ 30.309509] r6:ebae5c6c r5:ebae5c5c r4:ebae5c5c [ 30.312042] [] (apply_worker+0x0/0x188 [omapdrm]) from [] (process_one_work+0x1b8/0x4e8) [ 30.325012] [] (process_one_work+0x0/0x4e8) from [= ] (worker_thread+0x138/0x388) [ 30.325378] [] (worker_thread+0x0/0x388) from [] (= kthread+0xac/0xb8) [ 30.343292] [] (kthread+0x0/0xb8) from [] (ret_fro= m_fork+0x14/0x2c) [ 30.351837] r7:00000000 r6:00000000 r5:c0065fc4 r4:eb843d54 [ 30.352111] ---[ end trace 78317663d3b4807c ]--- Deadlock at module unload =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= When removing the modules, there's a dealock. This is the last line print= ed: [ 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" disable= s this message. [ 240.977508] rmmod D c0524964 0 894 884 0x00000000 [ 240.981719] Backtrace:=20 [ 240.987274] [] (__schedule+0x0/0x7e8) from [] (sch= edule+0x38/0x78) [ 240.995819] [] (schedule+0x0/0x78) from [] (schedu= le_preempt_disabled+0x28/0x38) [ 241.005706] [] (schedule_preempt_disabled+0x0/0x38) from [] (mutex_lock_nested+0x1b8/0x3a8) [ 241.016693] r4:c07f5bf8 r3:eb978180 [ 241.020812] [] (mutex_lock_nested+0x0/0x3a8) from [] (driver_detach+0x4c/0xc0) [ 241.021026] [] (driver_detach+0x0/0xc0) from [] (b= us_remove_driver+0x94/0xfc) [ 241.040100] r6:c07f5b38 r5:bf0ec410 r4:00000000 r3:00000000 [ 241.042633] [] (bus_remove_driver+0x0/0xfc) from [= ] (driver_unregister+0x58/0x78) [ 241.056060] r6:c07c28a4 r5:bf0ec410 r4:00000000 r3:eb978180 [ 241.062164] [] (driver_unregister+0x0/0x78) from [= ] (platform_driver_unregister+0x14/0x18) [ 241.072875] r5:bf0ebc18 r4:c07c2860 [ 241.075439] [] (platform_driver_unregister+0x0/0x18) from [<= bf0df2c8>] (pdev_remove+0x48/0x54 [omapdrm]) [ 241.087921] [] (pdev_remove+0x0/0x54 [omapdrm]) from [] (platform_drv_remove+0x20/0x24) [ 241.098327] r4:c07c2870 r3:bf0df280 [ 241.100860] [] (platform_drv_remove+0x0/0x24) from [] (__device_release_driver+0x78/0xd4) [ 241.112792] [] (__device_release_driver+0x0/0xd4) from [] (driver_detach+0xbc/0xc0) [ 241.113159] r5:bf0ebc18 r4:c07c2870 [ 241.122833] [] (driver_detach+0x0/0xc0) from [] (b= us_remove_driver+0x94/0xfc) [ 241.136108] r6:c07f5b38 r5:bf0ebc18 r4:00000000 r3:00000000 [ 241.142211] [] (bus_remove_driver+0x0/0xfc) from [= ] (driver_unregister+0x58/0x78) [ 241.152069] r6:00000880 r5:bf0ebc18 r4:00000000 r3:00000000 [ 241.153472] [] (driver_unregister+0x0/0x78) from [= ] (platform_driver_unregister+0x14/0x18) [ 241.168823] r5:bf0ec4a0 r4:00000000 [ 241.171356] [] (platform_driver_unregister+0x0/0x18) from [<= bf0e9bb8>] (omap_drm_fini+0x28/0x3c [omapdrm]) [ 241.183990] [] (omap_drm_fini+0x0/0x3c [omapdrm]) from [] (SyS_delete_module+0x154/0x288) [ 241.194610] [] (SyS_delete_module+0x0/0x288) from [] (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: []= driver_detach+0x4c/0xc0 [ 241.223693] #1: (&__lockdep_no_validate__){......}, at: []= driver_detach+0x58/0xc0 [ 241.232940] #2: (&__lockdep_no_validate__){......}, at: []= driver_detach+0x4c/0xc0 Tomi ------enig2RJGPWBAEOHMSROLBTGEU Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBAgAGBQJRrv3wAAoJEPo9qoy8lh71fPEP/jDJ4A0NsP3mo3JWFSGgN3mE M24EOkZfgE43hDTU4q8Uh8RZgSsFRUnJYBYGw45cJKNyknqpfGoL5SacxxEYzpGr FAqNAHaaxHBSyiP62ymj+qXVLtRNSxoIvSH8QI1fQasydWSxa+tnRnVIdlP9vgCS MXpGnlR7bjJe80/0ukqeFx5Bp0Sns9u9Lgk6/M6SqRIgLtaGUejMg6wg72V64n5+ BpwcojgDTQ0Bcds1wsfLcRIX/olNcbgRFe46cwRpNcKgtziWqM5apLSzaNH/EmDg Kt4VVliWt8+ryZ0ljaEgKZLjAwx26xBOq4a5pTzOb50TDEDRB+gGMIdm6UJ9GMTN Eo2cYK1wcM8oXZLCOwcCilIkGhyMQozL3f0C6sXu/dwWbdfMw8PjE0kyrvLUkvS1 Bk5/RoTgzliUNhs1bNlDIpOVTukE2fsGRPkrgjniIQedye7woaRw+znxTd38QOG6 kGwW3sG2WjBuO0cGNLlv2WY+pCCDxBDxNYaeIlyWIVHvIPjkC1/A2UhuZ6Gh5Dx+ aiUCGhlE4sBgd9UjYjvXIBpTf2OjnrBKjbCluxewt8pLJJq+4EGI15qX21hVrvoD qcvIQJMeisVQP849Li5APwqJ0T4AoVGD/DfFNcrLOSdq8UOKZflgTTH8JzqCGD5r QZeNGBdT3yuDpkg+FDMh =DpRY -----END PGP SIGNATURE----- ------enig2RJGPWBAEOHMSROLBTGEU-- --===============1380991300== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel --===============1380991300==--