Bug 97381 - kmem_cache_destroy - possible recursive locking detected
Summary: kmem_cache_destroy - possible recursive locking detected
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: mwa
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-17 11:39 UTC by mwa
Modified: 2017-04-11 13:14 UTC (History)
1 user (show)

See Also:
i915 platform: HSW
i915 features: GEM/Other


Attachments
dmesg (34.44 KB, text/plain)
2016-08-17 11:39 UTC, mwa
no flags Details

Description mwa 2016-08-17 11:39:54 UTC
Created attachment 125843 [details]
dmesg

[  706.898063] =============================================
[  706.898078] [ INFO: possible recursive locking detected ]
[  706.898094] 4.8.0-rc2-drm-intel-debug+ #21 Tainted: G     U  W      
[  706.898108] ---------------------------------------------
[  706.898123] rmmod/1889 is trying to acquire lock:
[  706.898137]  (&(&n->list_lock)->rlock){-.-...}, at: [<ffffffff8151e7bb>] get_partial_node+0x5b/0x460
[  706.898172] 
               but task is already holding lock:
[  706.898196]  (&(&n->list_lock)->rlock){-.-...}, at: [<ffffffff81525f1c>] __kmem_cache_shutdown+0xac/0x670
[  706.898227] 
               other info that might help us debug this:
[  706.898252]  Possible unsafe locking scenario:

[  706.898276]        CPU0
[  706.898288]        ----
[  706.898300]   lock(&(&n->list_lock)->rlock);
[  706.898315]   lock(&(&n->list_lock)->rlock);
[  706.898330] 
                *** DEADLOCK ***

See attachment for the rest.
Comment 1 Chris Wilson 2016-08-17 11:50:12 UTC
The deadlock warning is secondary to the actual leak.
Comment 2 Chris Wilson 2016-08-19 08:44:55 UTC
Details on root cause needed.
Comment 3 mwa 2016-08-20 17:01:19 UTC
./scripts/run-tests.sh -t basic

[  217.552110] core_auth: executing
[  217.583164] core_auth: starting subtest basic-auth
[  217.585737] core_auth: exiting, ret=0
[  217.969781] core_prop_blob: executing
[  217.999024] core_prop_blob: starting subtest basic
[  218.000015] core_prop_blob: exiting, ret=0
[  219.243643] gem_cpu_reloc: executing
[  219.272541] gem_cpu_reloc: starting subtest basic
[  219.348159] gem_cpu_reloc: exiting, ret=0
[  219.796036] gem_ctx_basic: executing
[  261.943250] gem_ctx_basic: exiting, ret=0
[  272.794109] gem_ctx_create: executing
[  272.847262] gem_ctx_create: starting subtest basic
[  272.856667] gem_ctx_create: exiting, ret=0
[  273.356169] gem_ctx_create: executing
[  273.420588] gem_ctx_create: starting subtest basic-files
[  300.368627] gem_ctx_create: exiting, ret=0
[  300.754624] gem_ctx_switch: executing
[  300.802481] gem_ctx_switch: starting subtest basic-default
[  322.485743] gem_ctx_switch: exiting, ret=0
[  323.898749] gem_render_linear_blits: executing
[  323.929264] gem_render_linear_blits: starting subtest basic
[  324.040517] gem_render_linear_blits: exiting, ret=0
[  324.437241] gem_render_tiled_blits: executing
[  324.466289] gem_render_tiled_blits: starting subtest basic
[  324.627204] gem_render_tiled_blits: exiting, ret=0
[  325.018016] gem_storedw_loop: executing
[  325.048529] gem_storedw_loop: starting subtest basic-default
[  357.658573] gem_storedw_loop: exiting, ret=0
[  358.042237] gem_storedw_loop: executing
[  358.072078] gem_storedw_loop: starting subtest basic-render
[  392.353467] gem_storedw_loop: exiting, ret=0
[  392.737309] gem_storedw_loop: executing
[  392.766850] gem_storedw_loop: starting subtest basic-bsd
[  425.905184] gem_storedw_loop: exiting, ret=0
[  426.287284] gem_storedw_loop: executing
[  426.315931] gem_storedw_loop: starting subtest basic-bsd1
[  426.316917] gem_storedw_loop: exiting, ret=77
[  426.723249] gem_storedw_loop: executing
[  426.752595] gem_storedw_loop: starting subtest basic-bsd2
[  426.753277] gem_storedw_loop: exiting, ret=77
[  427.138752] gem_storedw_loop: executing
[  427.167651] gem_storedw_loop: starting subtest basic-blt
[  462.154032] gem_storedw_loop: exiting, ret=0
[  462.538641] gem_storedw_loop: executing
[  462.567409] gem_storedw_loop: starting subtest basic-vebox
[  496.104825] gem_storedw_loop: exiting, ret=0
[  496.486320] gem_sync: executing
[  496.538809] gem_sync: starting subtest basic-each
[  507.613555] gem_sync: exiting, ret=0
[  508.002982] gem_sync: executing
[  508.054467] gem_sync: starting subtest basic-store-each
[  518.605882] gem_sync: exiting, ret=0
[  518.990213] gem_sync: executing
[  519.041436] gem_sync: starting subtest basic-many-each
[  531.696358] gem_sync: exiting, ret=0
[  532.085885] gem_sync: executing
[  532.137077] gem_sync: starting subtest basic-all
[  543.636053] gem_sync: exiting, ret=0
[  544.020474] gem_sync: executing
[  544.070578] gem_sync: starting subtest basic-store-all
[  556.596824] gem_sync: exiting, ret=0
[  556.987248] gem_tiled_fence_blits: executing
[  557.016474] gem_tiled_fence_blits: starting subtest basic
[  557.135919] gem_tiled_fence_blits: exiting, ret=0
[  557.519540] gem_tiled_pread_basic: executing
[  563.181763] gem_tiled_pread_basic: exiting, ret=0
[  563.569709] gem_workarounds: executing
[  563.622746] gem_workarounds: starting subtest basic-read
[  563.648329] gem_workarounds: exiting, ret=0
[  564.033443] kms_force_connector_basic: executing
[  564.063470] kms_force_connector_basic: starting subtest force-load-detect
[  564.075502] Setting dangerous option load_detect_test - tainting kernel
[  564.171970] Setting dangerous option load_detect_test - tainting kernel
[  564.313453] Setting dangerous option load_detect_test - tainting kernel
[  564.313827] kms_force_connector_basic: exiting, ret=0
[  564.317088] Setting dangerous option load_detect_test - tainting kernel
[  564.737854] kms_force_connector_basic: executing
[  564.766879] kms_force_connector_basic: starting subtest force-connector-state
[  564.960205] Setting dangerous option load_detect_test - tainting kernel
[  564.960553] kms_force_connector_basic: exiting, ret=0
[  564.961276] Setting dangerous option load_detect_test - tainting kernel
[  565.548366] kms_force_connector_basic: executing
[  565.578001] kms_force_connector_basic: starting subtest force-edid
[  565.736425] Setting dangerous option load_detect_test - tainting kernel
[  565.736818] kms_force_connector_basic: exiting, ret=0
[  565.737518] Setting dangerous option load_detect_test - tainting kernel
[  566.282341] kms_force_connector_basic: executing
[  566.312160] kms_force_connector_basic: starting subtest prune-stale-modes
[  567.366402] Setting dangerous option load_detect_test - tainting kernel
[  567.366801] kms_force_connector_basic: exiting, ret=0
[  567.367503] Setting dangerous option load_detect_test - tainting kernel
[  567.974410] kms_sink_crc_basic: executing
[  568.023705] kms_sink_crc_basic: exiting, ret=77
[  568.666322] Console: switching to colour dummy device 80x25

[  571.441782] =============================================
[  571.441787] [ INFO: possible recursive locking detected ]
[  571.441794] 4.8.0-rc2-drm-intel-debug+ #22 Tainted: G     U  W
Comment 4 yann 2016-08-23 14:15:34 UTC
Matthew, can you update the i915 platform information ? Is it HSW, IVB or BTY ?
Comment 5 Jari Tahvanainen 2017-03-29 07:29:01 UTC
Matthew - is failure still valid with the latest kernels?
Comment 6 mwa 2017-03-29 18:32:32 UTC
Unable to reproduce on latest tip. Closing.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.