Bug 100234 - [PSTORE] Deadlock detected with lockdep when # rm /sys/fs/pstore/*
Summary: [PSTORE] Deadlock detected with lockdep when # rm /sys/fs/pstore/*
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: Other All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords: notourbug
Depends on:
Blocks:
 
Reported: 2017-03-16 16:21 UTC by Tomi Sarvela
Modified: 2017-08-16 14:50 UTC (History)
1 user (show)

See Also:
i915 platform: SKL
i915 features:


Attachments
fs/pstore: Perform erase from a worker (7.05 KB, patch)
2017-03-16 22:03 UTC, Chris Wilson
no flags Details | Splinter Review

Description Tomi Sarvela 2017-03-16 16:21:25 UTC
Pstore had the latest GPF information saved. I copied it out and then ran
# rm /sys/fs/pstore/*

Below is dump what happened

Kernel version c1374a7a4a7fb0093d98ad6aa7071c8671fcdf08
from https://cgit.freedesktop.org/drm-tip

Kernel configuration
https://intel-gfx-ci.01.org/CI/CI_DRM_2352/kernel.config.bz2


Tomi



[  605.374955] ======================================================
[  605.381281] [ INFO: possible circular locking dependency detected ]
[  605.387679] 4.11.0-rc2-CI-CI_DRM_2352+ #1 Not tainted
[  605.392826] -------------------------------------------------------
[  605.399196] rm/7298 is trying to acquire lock:
[  605.403720]  (&psinfo->read_mutex){+.+.+.}, at: [<ffffffff813e183f>] pstore_unlink+0x3f/0xa0
[  605.412300] 
[  605.412300] but task is already holding lock:
[  605.418237]  (&sb->s_type->i_mutex_key#14){++++++}, at: [<ffffffff812157ec>] vfs_unlink+0x4c/0x19
0
[  605.427397] 
[  605.427397] which lock already depends on the new lock.
[  605.427397] 
[  605.435770] 
[  605.435770] the existing dependency chain (in reverse order) is:
[  605.443396] 
[  605.443396] -> #1 (&sb->s_type->i_mutex_key#14){++++++}:
[  605.450347]        lock_acquire+0xc9/0x220
[  605.454551]        down_write+0x3f/0x70
[  605.458484]        pstore_mkfile+0x1f4/0x460
[  605.462835]        pstore_get_records+0x17a/0x320
[  605.467664]        pstore_fill_super+0xa4/0xc0
[  605.472205]        mount_single+0x89/0xb0
[  605.476314]        pstore_mount+0x13/0x20
[  605.480411]        mount_fs+0xf/0x90
[  605.484122]        vfs_kern_mount+0x66/0x170
[  605.488464]        do_mount+0x190/0xd50
[  605.492397]        SyS_mount+0x90/0xd0
[  605.496212]        entry_SYSCALL_64_fastpath+0x1c/0xb1
[  605.501496] 
[  605.501496] -> #0 (&psinfo->read_mutex){+.+.+.}:
[  605.507747]        __lock_acquire+0x1ac0/0x1bb0
[  605.512401]        lock_acquire+0xc9/0x220
[  605.516594]        __mutex_lock+0x6e/0x990
[  605.520755]        mutex_lock_nested+0x16/0x20
[  605.525279]        pstore_unlink+0x3f/0xa0
[  605.529465]        vfs_unlink+0xb5/0x190
[  605.533477]        do_unlinkat+0x24c/0x2a0
[  605.537672]        SyS_unlinkat+0x16/0x30
[  605.541781]        entry_SYSCALL_64_fastpath+0x1c/0xb1
[  605.547067] 
[  605.547067] other info that might help us debug this:
[  605.547067] 
[  605.555221]  Possible unsafe locking scenario:
[  605.555221] 
[  605.561280]        CPU0                    CPU1
[  605.565883]        ----                    ----
[  605.570502]   lock(&sb->s_type->i_mutex_key#14);
[  605.575217]                                lock(&psinfo->read_mutex);
[  605.581803]                                lock(&sb->s_type->i_mutex_key#14);
[  605.589159]   lock(&psinfo->read_mutex);
[  605.593156] 
[  605.593156]  *** DEADLOCK ***
[  605.593156] 
[  605.599214] 3 locks held by rm/7298:
[  605.602896]  #0:  (sb_writers#11){.+.+..}, at: [<ffffffff8122e85f>] mnt_want_write+0x1f/0x50
[  605.611490]  #1:  (&sb->s_type->i_mutex_key#14/1){+.+...}, at: [<ffffffff8121a7dc>] do_unlinkat+0
x11c/0x2a0
[  605.621417]  #2:  (&sb->s_type->i_mutex_key#14){++++++}, at: [<ffffffff812157ec>] vfs_unlink+0x4c
/0x190
[  605.630995] 
[  605.630995] stack backtrace:
[  605.635450] CPU: 7 PID: 7298 Comm: rm Not tainted 4.11.0-rc2-CI-CI_DRM_2352+ #1
[  605.642999] Hardware name: Gigabyte Technology Co., Ltd. Z170X-UD5/Z170X-UD5-CF, BIOS F21 01/06/2
017
[  605.652305] Call Trace:
[  605.654814]  dump_stack+0x67/0x92
[  605.658184]  print_circular_bug+0x1e0/0x2e0
[  605.662465]  __lock_acquire+0x1ac0/0x1bb0
[  605.666634]  ? retint_kernel+0x2d/0x2d
[  605.670456]  lock_acquire+0xc9/0x220
[  605.674112]  ? pstore_unlink+0x3f/0xa0
[  605.677970]  ? pstore_unlink+0x3f/0xa0
[  605.681818]  __mutex_lock+0x6e/0x990
[  605.685456]  ? pstore_unlink+0x3f/0xa0
[  605.689791]  ? pstore_unlink+0x3f/0xa0
[  605.694124]  ? vfs_unlink+0x4c/0x190
[  605.698310]  mutex_lock_nested+0x16/0x20
[  605.702859]  pstore_unlink+0x3f/0xa0
[  605.707021]  vfs_unlink+0xb5/0x190
[  605.711024]  do_unlinkat+0x24c/0x2a0
[  605.715194]  SyS_unlinkat+0x16/0x30
[  605.719275]  entry_SYSCALL_64_fastpath+0x1c/0xb1
[  605.724543] RIP: 0033:0x7f8b08073ed7
[  605.728676] RSP: 002b:00007ffe70eff628 EFLAGS: 00000206 ORIG_RAX: 0000000000000107
[  605.736929] RAX: ffffffffffffffda RBX: ffffffff8147ea93 RCX: 00007f8b08073ed7
[  605.744711] RDX: 0000000000000000 RSI: 0000000001450000 RDI: 00000000ffffff9c
[  605.752512] RBP: ffffc9000338ff88 R08: 0000000000000003 R09: 0000000000000000
[  605.760276] R10: 000000000000015e R11: 0000000000000206 R12: 0000000000000000
[  605.768040] R13: 00007ffe70eff750 R14: 000000000144ff70 R15: 0000000001451230
[  605.775800]  ? __this_cpu_preempt_check+0x13/0x20
Comment 1 Chris Wilson 2017-03-16 22:03:10 UTC
Created attachment 130276 [details] [review]
fs/pstore: Perform erase from a worker
Comment 2 yann 2017-03-17 14:54:21 UTC
Reference to Chris' patch: https://patchwork.freedesktop.org/series/21438/
Comment 3 Elizabeth 2017-06-23 22:54:11 UTC
(In reply to yann from comment #2)
> Reference to Chris' patch: https://patchwork.freedesktop.org/series/21438/

Hello,
Is there any update with this information?? Thank you.
Comment 4 Elizabeth 2017-08-16 14:49:54 UTC
This bug is fixed upstream. Resolved / Fixed


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.