Project

General

Profile

Actions

Bug #147

closed

lockdep: possible irq lock inversion dependency w/ osdc->request_mutex and con->mutex

Added by Sage Weil almost 14 years ago. Updated about 5 years ago.

Status:
Resolved
Priority:
Low
Assignee:
Category:
libceph
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
Reviewed:
Affected Versions:
ceph-qa-suite:
Crash signature (v1):
Crash signature (v2):

Description

[44161.467025] =========================================================
[44161.470334] [ INFO: possible irq lock inversion dependency detected ]
[44161.470334] 2.6.34 #29
[44161.470334] ---------------------------------------------------------
[44161.470334] kswapd0/356 just changed the state of lock:
[44161.470334]  (&osdc->request_mutex){+.+.-.}, at: [<ffffffffa0071364>] ceph_osdc_start_request+0x62/0x293 [ceph]
[44161.470334] but this lock took another, RECLAIM_FS-unsafe lock in the past:
[44161.470334]  (&con->mutex){+.+.+.}
[44161.470334] 
[44161.470334] and interrupts could create inverse lock ordering between them.
[44161.470334] 
[44161.470334] 
[44161.470334] other info that might help us debug this:
[44161.470334] no locks held by kswapd0/356.
[44161.470334] 
[44161.470334] the shortest dependencies between 2nd lock and 1st lock:
[44161.470334]  -> (&con->mutex){+.+.+.} ops: 42297456 {
[44161.470334]     HARDIRQ-ON-W at:
[44161.470334]                                          [<ffffffff8105aaed>] __lock_acquire+0x64e/0x851
[44161.470334]                                          [<ffffffff8105ad78>] lock_acquire+0x88/0xa5
[44161.470334]                                          [<ffffffff81426abf>] mutex_lock_nested+0x62/0x32c
[44161.470334]                                          [<ffffffffa0065d56>] ceph_con_revoke+0x22/0x165 [ceph]
[44161.470334]                                          [<ffffffffa006e2c0>] __send_prepared_auth_request+0x41/0x6b [ceph]
[44161.470334]                                          [<ffffffffa006e557>] __open_session+0x12f/0x202 [ceph]
[44161.470334]                                          [<ffffffffa006eeae>] ceph_monc_open_session+0x7c/0x93 [ceph]
[44161.470334]                                          [<ffffffffa00472a3>] __ceph_open_session+0x92/0x211 [ceph]
[44161.470334]                                          [<ffffffffa0048ce1>] ceph_get_sb+0x1d4/0x555 [ceph]
[44161.470334]                                          [<ffffffff810b1dc6>] vfs_kern_mount+0xaf/0x183
[44161.470334]                                          [<ffffffff810b1ef7>] do_kern_mount+0x47/0xee
[44161.470334]                                          [<ffffffff810c6e5e>] do_mount+0x74d/0x7c8
[44161.470334]                                          [<ffffffff810c6f58>] sys_mount+0x7f/0xbf
[44161.470334]                                          [<ffffffff81002a2b>] system_call_fastpath+0x16/0x1b
[44161.470334]     SOFTIRQ-ON-W at:
[44161.470334]                                          [<ffffffff8105ab0f>] __lock_acquire+0x670/0x851
[44161.470334]                                          [<ffffffff8105ad78>] lock_acquire+0x88/0xa5
[44161.470334]                                          [<ffffffff81426abf>] mutex_lock_nested+0x62/0x32c
[44161.470334]                                          [<ffffffffa0065d56>] ceph_con_revoke+0x22/0x165 [ceph]
[44161.734219]                                          [<ffffffffa006e2c0>] __send_prepared_auth_request+0x41/0x6b [ceph]
[44161.734219]                                          [<ffffffffa006e557>] __open_session+0x12f/0x202 [ceph]
[44161.734219]                                          [<ffffffffa006eeae>] ceph_monc_open_session+0x7c/0x93 [ceph]
[44161.734219]                                          [<ffffffffa00472a3>] __ceph_open_session+0x92/0x211 [ceph]
[44161.734219]                                          [<ffffffffa0048ce1>] ceph_get_sb+0x1d4/0x555 [ceph]
[44161.734219]                                          [<ffffffff810b1dc6>] vfs_kern_mount+0xaf/0x183
[44161.734219]                                          [<ffffffff810b1ef7>] do_kern_mount+0x47/0xee
[44161.734219]                                          [<ffffffff810c6e5e>] do_mount+0x74d/0x7c8
[44161.734219]                                          [<ffffffff810c6f58>] sys_mount+0x7f/0xbf
[44161.734219]                                          [<ffffffff81002a2b>] system_call_fastpath+0x16/0x1b
[44161.734219]     RECLAIM_FS-ON-W at:
[44161.734219]                                             [<ffffffff81057f1c>] mark_held_locks+0x49/0x64
[44161.734219]                                             [<ffffffff81058625>] lockdep_trace_alloc+0xa5/0xc3
[44161.734219]                                             [<ffffffff810a90c9>] kmem_cache_alloc+0x2a/0x144
[44161.734219]                                             [<ffffffff81387009>] sock_alloc_inode+0x1a/0x6d
[44161.734219]                                             [<ffffffff810c2a83>] alloc_inode+0x18/0x76
[44161.734219]                                             [<ffffffff810c30fc>] new_inode+0x21/0x99
[44161.734219]                                             [<ffffffff81389499>] sock_alloc+0x14/0x58
[44161.734219]                                             [<ffffffff81389c46>] __sock_create+0xa0/0x2d3
[44161.734219]                                             [<ffffffff81389e98>] sock_create_kern+0x1f/0x21
[44161.734219]                                             [<ffffffffa0064705>] try_write+0x1d4/0x10eb [ceph]
[44161.734219]                                             [<ffffffffa0066135>] con_work+0x135/0x6b2 [ceph]
[44161.734219]                                             [<ffffffff8104786b>] worker_thread+0x1e8/0x2fa
[44161.734219]                                             [<ffffffff8104a65e>] kthread+0x7d/0x85
[44161.734219]                                             [<ffffffff810037d4>] kernel_thread_helper+0x4/0x10
[44161.734219]     INITIAL USE at:
[44161.734219]                                         [<ffffffff8105ab5a>] __lock_acquire+0x6bb/0x851
[44161.734219]                                         [<ffffffff8105ad78>] lock_acquire+0x88/0xa5
[44161.734219]                                         [<ffffffff81426abf>] mutex_lock_nested+0x62/0x32c
[44161.734219]                                         [<ffffffffa0065d56>] ceph_con_revoke+0x22/0x165 [ceph]
[44161.734219]                                         [<ffffffffa006e2c0>] __send_prepared_auth_request+0x41/0x6b [ceph]
[44161.734219]                                         [<ffffffffa006e557>] __open_session+0x12f/0x202 [ceph]
[44161.734219]                                         [<ffffffffa006eeae>] ceph_monc_open_session+0x7c/0x93 [ceph]
[44161.734219]                                         [<ffffffffa00472a3>] __ceph_open_session+0x92/0x211 [ceph]
[44161.734219]                                         [<ffffffffa0048ce1>] ceph_get_sb+0x1d4/0x555 [ceph]
[44161.734219]                                         [<ffffffff810b1dc6>] vfs_kern_mount+0xaf/0x183
[44161.734219]                                         [<ffffffff810b1ef7>] do_kern_mount+0x47/0xee
[44161.734219]                                         [<ffffffff810c6e5e>] do_mount+0x74d/0x7c8
[44161.734219]                                         [<ffffffff810c6f58>] sys_mount+0x7f/0xbf
[44161.734219]                                         [<ffffffff81002a2b>] system_call_fastpath+0x16/0x1b
[44161.734219]   }
[44161.734219]   ... key      at: [<ffffffffa009f740>] __key.50466+0x0/0xfffffffffffdc726 [ceph]
[44161.734219]   ... acquired at:
[44161.734219]    [<ffffffff8105a1c4>/0x1a5 [ceph]
[4 [<ffffffffa0051cde>] ceph_aio_read+0x684/0x9c4 [ceph]
[44161.734219]    [<ffffffff810af91b>] do_sync_read+0xcb/0x112
[44161.734219]    [<ffffffff810b00c8>] vfs_read+0xab/0x147
[44161.734219]    [<ffffffff810b041d>] sys_read+0x47/0x70
[44161.734219]    [<ffffffff81002a2b>] system_call_fastpath+0x16/0x1b
[44161.734219] 
[44161.734219] -> (&osdc->request_mutex){+.+.-.} ops: 5330322 {
[44161.734219]    HARDIRQ-ON-W at:
[44161.734219]                                        [<ffffffff8105aaed>] __lock_acquire+0x64e/0x851
[44161.734219]                                        [<ffffffff8105ad78>] lock_acquire+0x88/0xa5
[44161.734219]                                        [<ffffffff81426abf>] mutex_lock_nested+0x62/0x32c
[44161.734219]                                        [<ffffffffa0071aaa>] kick_requests+0x24/0x9d [ceph]
[44161.734219]                                        [<ffffffffa0072030>] ceph_osdc_handle_map+0x36e/0x53c [ceph]
[44161.734219]                                        [<ffffffffa006f783>] dispatch+0x4c7/0x5f7 [ceph]
[44161.734219]                                        [<ffffffffa0063ef2>] try_read+0xd98/0x13d7 [ceph]
[44161.734219]                                        [<ffffffffa0066129>] con_work+0x129/0x6b2 [ceph]
[44161.734219]                                        [<ffffffff8104786b>] worker_thread+0x1e8/0x2fa
[44161.734219]                                        [<ffffffff8104a65e>] kthread+0x7d/0x85
[44161.734219]                                        [<ffffffff810037d4>] kernel_thread_helper+0x4/0x10
[44161.734219]    SOFTIRQ-ON-W at:
[44161.734219]                                        [<ffffffff8105ab0f>] __lock_acquire+0x670/0x851
[44161.734219]                                        [<ffffffff8105ad78>] lock_acquire+0x88/0xa5
[44161.734219]                                        [<ffffffff81426abf>] mutex_lock_nested+0x62/0x32c
[44161.734219]                                        [<ffffffffa0071aaa>] kick_requests+0x24/0x9d [ceph]
[44161.734219]                                        [<ffffffffa0072030>] ceph_osdc_handle_map+0x36e/0x53c [ceph]
[44161.734219]                                        [<ffffffffa006f783>] dispatch+0x4c7/0x5f7 [ceph]
[44161.734219]                                        [<ffffffffa0063ef2>] try_read+0xd98/0x13d7 [ceph]
[44161.734219]                                        [<ffffffffa0066129>] con_work+0x129/0x6b2 [ceph]
[44161.734219]                                        [<ffffffff8104786b>] worker_thread+0x1e8/0x2fa
[44161.734219]                                        [<ffffffff8104a65e>] kthread+0x7d/0x85
[44161.734219]                                        [<ffffffff810037d4>] kernel_thread_helper+0x4/0x10
[44161.734219]    IN-RECLAIM_FS-W at:
[44161.734219]                                           [<ffffffff8105ab42>] __lock_acquire+0x6a3/0x851
[44161.734219]                                           [<ffffffff8105ad78>] lock_acquire+0x88/0xa5
[44161.734219]                                           [<ffffffff81426abf>] mutex_lock_nested+0x62/0x32c
[44161.734219]                                           [<ffffffffa0071364>] ceph_osdc_start_request+0x62/0x293 [ceph]
[44161.734219]                                           [<ffffffffa0072be1>] ceph_osdc_writepages+0x102/0x1bf [ceph]
[44161.734219]                                           [<ffffffffa00536e2>] writepage_nounlock+0x293/0x4ff [ceph]
[44161.734219]                                           [<ffffffffa005430e>] ceph_writepage+0x36/0x52 [ceph]
[44161.734219]                                           [<ffffffff81088d25>] shrink_page_list+0x37f/0x654
[44161.734219]                                           [<ffffffff81089602>] shrink_zone+0x608/0x979
[44161.734219]                                           [<ffffffff8108a5d9>] kswapd+0x477/0x682
[44161.734219]                                           [<ffffffff8104a65e>] kthread+0x7d/0x85
[44161.734219]                                           [<ffffffff810037d4>] kernel_thread_helper+0x4/0x10
[44161.734219]    INITIAL USE at:
[44161.734219]                                       [<ffffffff8105ab5a>] __lock_acquire+0x6bb/0x851
[44161.734219]                                       [<ffffffff8105ad78>] lock_acquire+0x88/0xa5
[44161.734219]                                       [<ffffffff81426abf>] mutex_lock_nested+0x62/0x32c
[44161.734219]                                       [<ffffffffa0071aaa>] kick_requests+0x24/0x9d [ceph]
[44161.734219]                                       [<ffffffffa0072030>] ceph_osdc_handle_map+0x36e/0x53c [ceph]
[44161.734219]                                       [<ffffffffa006f783>] dispatch+0x4c7/0x5f7 [ceph]
[44161.734219]                                       [<ffffffffa0063ef2>] try_read+0xd98/0x13d7 [ceph]
[44161.734219]                                       [<ffffffffa0066129>] con_work+0x129/0x6b2 [ceph]
[44161.734219]                                       [<ffffffff8104786b>] worker_thread+0x1e8/0x2fa
[44161.734219]                                       [<ffffffff8104a65e>] kthread+0x7d/0x85
[44161.734219]                                       [<ffffffff810037d4>] kernel_thread_helper+0x4/0x10
[44161.734219]  }
[44161.734219]  ... key      at: [<ffffffffa009ff38>] __key.31276+0x0/0xfffffffffffdbf2e [ceph]
[44161.734219]  ... acquired at:
[44161.734219]    [<ffffffff8105b888>] check_usage_forwards+0xbb/0xca
[44161.734219]    [<ffffffff81057c98>] mark_lock+0x312/0x54d
[44161.734219]    [<ffffffff8105ab42>] __lock_acquire+0x6a3/0x851
[44161.734219]    [<ffffffff8105ad78>] lock_acquire+0x88/0xa5
[44161.734219]    [<ffffffff81426abf>] mutex_lock_nested+0x62/0x32c
[44161.734219]    [<ffffffffa0071364>] ceph_osdc_start_request+0x62/0x293 [ceph]
[44161.734219]    [<ffffffffa0072be1>] ceph_osdc_writepages+0x102/0x1bf [ceph]
[44161.734219]    [<ffffffffa00536e2>] writepage_nounlock+0x293/0x4ff [ceph]
[44161.734219]    [<ffffffffa005430e>] ceph_writepage+0x36/0x52 [ceph]
[44161.734219]    [<ffffffff81088d25>] shrink_page_list+0x37f/0x654
[44161.734219]    [<ffffffff81089602>] shrink_zone+0x608/0x979
[44161.734219]    [<ffffffff8108a5d9>] kswapd+0x477/0x682
[44161.734219]    [<ffffffff8104a65e>] kthread+0x7d/0x85
[44161.734219]    [<ffffffff810037d4>] kernel_thread_helper+0x4/0x10
[44161.734219] 
[44161.734219] 
[44161.734219] stack backtrace:
[44161.734219] Pid: 356, comm: kswapd0 Not tainted 2.6.34 #29
[44161.734219] Call Trace:
[44161.734219]  [<ffffffff810577b4>] print_irq_inversion_bug+0x121/0x12f
[44161.734219]  [<ffffffff8105b888>] check_usage_forwards+0xbb/0xca
[44161.734219]  [<ffffffff810a7b12>] ? cache_alloc_debugcheck_after+0x40/0x13b
[44161.734219]  [<ffffffff8105b7cd>] ? check_usage_forwards+0x0/0xca
[44161.734219]  [<ffffffff81057c98>] mark_lock+0x312/0x54d
[44161.734219]  [<ffffffff8105ab42>] __lock_acquire+0x6a3/0x851
[44161.734219]  [<ffffffff812242ae>] ? sprintf+0x68/0x6a
[44161.734219]  [<ffffffff8105ad78>] lock_acquire+0x88/0xa5
[44161.734219]  [<ffffffffa0071364>] ? ceph_osdc_start_request+0x62/0x293 [ceph]
[44161.734219]  [<ffffffffa0071364>] ? ceph_osdc_start_request+0x62/0x293 [ceph]
[44161.734219]  [<ffffffff81426abf>] mutex_lock_nested+0x62/0x32c
[44161.734219]  [<ffffffffa0071364>] ? ceph_osdc_start_request+0x62/0x293 [ceph]
[44161.734219]  [<ffffffffa0072acd>] ? ceph_osdc_new_request+0x111/0x123 [ceph]
[44161.734219]  [<ffffffffa0071364>] ceph_osdc_start_request+0x62/0x293 [ceph]
[44161.734219]  [<ffffffffa0072be1>] ceph_osdc_writepages+0x102/0x1bf [ceph]
[44161.734219]  [<ffffffffa00536e2>] writepage_nounlock+0x293/0x4ff [ceph]
[44161.734219]  [<ffffffffa005430e>] ceph_writepage+0x36/0x52 [ceph]
[44161.734219]  [<ffffffff81088d25>] shrink_page_list+0x37f/0x654
[44161.734219]  [<ffffffff8104f3a2>] ? sched_clock_local+0x11/0x73
[44161.734219]  [<ffffffff8104f4ca>] ? sched_clock_cpu+0xc6/0xd4
[44161.734219]  [<ffffffff810567b8>] ? get_lock_stats+0x19/0x4c
[44161.734219]  [<ffffffff81089602>] shrink_zone+0x608/0x979
[44161.734219]  [<ffffffff81009a23>] ? native_sched_clock+0x37/0x71
[44161.734219]  [<ffffffff8104dfb7>] ? up_read+0x1e/0x37
[44161.734219]  [<ffffffff8104a990>] ? autoremove_wake_function+0x0/0x38
[44161.734219]  [<ffffffff8108a5d9>] kswapd+0x477/0x682
[44161.734219]  [<ffffffff81087c5c>] ? isolate_pages_global+0x0/0x209
[44161.734219]  [<ffffffff8104a990>] ? autoremove_wake_function+0x0/0x38
[44161.734219]  [<ffffffff8108a162>] ? kswapd+0x0/0x682
[44161.734219]  [<ffffffff8104a65e>] kthread+0x7d/0x85
[44161.734219]  [<ffffffff810037d4>] kernel_thread_helper+0x4/0x10
[44161.734219]  [<ffffffff81429380>] ? restore_args+0x0/0x30
[44161.734219]  [<ffffffff8104a5e1>] ? kthread+0x0/0x85
[44161.734219]  [<ffffffff810037d0>] ? kernel_thread_helper+0x0/0x10

Related issues 1 (1 open0 closed)

Related to Linux kernel client - Bug #2590: possible irq lock inversion dependency with con->mutex and osdc->request_mutexNew

Actions
Actions

Also available in: Atom PDF