[ 563.336820] ====================================================== [ 563.355336] [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ] [ 563.375411] 3.5.0-rc2+ #1 Not tainted [ 563.386367] ------------------------------------------------------ [ 563.404881] gatord-child/2791 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire: [ 563.425780] (bdev_lock){+.+...}, at: [] nr_blockdev_pages+0xb/0x40 [ 563.447151] [ 563.447151] and this task is already holding: [ 563.464652] (&rq->lock){-.-.-.}, at: [] __schedule+0x93/0x640 [ 563.484721] which would create a new lock dependency: [ 563.499870] (&rq->lock){-.-.-.} -> (bdev_lock){+.+...} [ 563.515514] [ 563.515514] but this new dependency connects a HARDIRQ-irq-safe lock: [ 563.539245] (&rq->lock){-.-.-.} [ 563.539245] ... which became HARDIRQ-irq-safe at: [ 563.562998] [] __lock_acquire+0x739/0x139c [ 563.578395] [] lock_acquire+0x5f/0xbc [ 563.592491] [] _raw_spin_lock+0x21/0x2c [ 563.607124] [] scheduler_tick+0x2f/0x11c [ 563.622014] [] update_process_times+0x3f/0x48 [ 563.638189] [] tick_periodic+0x31/0x90 [ 563.652541] [] tick_handle_periodic+0x1d/0x64 [ 563.668718] [] sp804_timer_interrupt+0x1f/0x2c [ 563.685163] [] handle_irq_event_percpu+0x3b/0x1a4 [ 563.702379] [] handle_irq_event+0x29/0x3c [ 563.717519] [] handle_fasteoi_irq+0x5d/0xcc [ 563.733174] [] generic_handle_irq+0x17/0x2c [ 563.748839] [] handle_IRQ+0x35/0x7c [ 563.762409] [] gic_handle_irq+0x19/0x40 [ 563.777021] [] __irq_svc+0x3f/0x80 [ 563.790340] [] calibrate_delay+0x70/0x16c [ 563.805477] [] start_kernel+0x1df/0x270 [ 563.820085] [<6000804f>] 0x6000804f [ 563.831041] [ 563.831041] to a HARDIRQ-irq-unsafe lock: [ 563.847483] (bdev_lock){+.+...} [ 563.847483] ... which became HARDIRQ-irq-unsafe at: [ 563.871745] ... [] __lock_acquire+0x681/0x139c [ 563.887921] [] lock_acquire+0x5f/0xbc [ 563.902015] [] _raw_spin_lock+0x21/0x2c [ 563.916631] [] nr_blockdev_pages+0xb/0x40 [ 563.931770] [] si_meminfo+0x29/0x38 [ 563.945354] [] eventpoll_init+0x15/0x90 [ 563.959965] [] do_one_initcall+0x21/0x108 [ 563.975096] [] kernel_init+0xbf/0x14c [ 563.989193] [] kernel_thread_exit+0x1/0x8 [ 564.004314] [ 564.004314] other info that might help us debug this: [ 564.004314] [ 564.028296] Possible interrupt unsafe locking scenario: [ 564.028296] [ 564.048629] CPU0 CPU1 [ 564.062187] ---- ---- [ 564.075753] lock(bdev_lock); [ 564.084884] local_irq_disable(); [ 564.102617] lock(&rq->lock); [ 564.119307] lock(bdev_lock); [ 564.135990] [ 564.143825] lock(&rq->lock); [ 564.153477] [ 564.153477] *** DEADLOCK *** [ 564.153477] [ 564.171213] 1 lock held by gatord-child/2791: [ 564.184281] #0: (&rq->lock){-.-.-.}, at: [] __schedule+0x93/0x640 [ 564.205658] [ 564.205658] the dependencies between HARDIRQ-irq-safe lock and the holding lock: [ 564.232311] -> (&rq->lock){-.-.-.} ops: 908579 { [ 564.246137] IN-HARDIRQ-W at: [ 564.255548] [] __lock_acquire+0x739/0x139c [ 564.270682] [] lock_acquire+0x5f/0xbc [ 564.284515] [] _raw_spin_lock+0x21/0x2c [ 564.298876] [] scheduler_tick+0x2f/0x11c [ 564.313496] [] update_process_times+0x3f/0x48 [ 564.329410] [] tick_periodic+0x31/0x90 [ 564.343501] [] tick_handle_periodic+0x1d/0x64 [ 564.359416] [] sp804_timer_interrupt+0x1f/0x2c [ 564.375594] [] handle_irq_event_percpu+0x3b/0x1a4 [ 564.392550] [] handle_irq_event+0x29/0x3c [ 564.407425] [] handle_fasteoi_irq+0x5d/0xcc [ 564.422817] [] generic_handle_irq+0x17/0x2c [ 564.438215] [] handle_IRQ+0x35/0x7c [ 564.451523] [] gic_handle_irq+0x19/0x40 [ 564.465873] [] __irq_svc+0x3f/0x80 [ 564.478926] [] calibrate_delay+0x70/0x16c [ 564.493799] [] start_kernel+0x1df/0x270 [ 564.508148] [<6000804f>] 0x6000804f [ 564.518847] IN-SOFTIRQ-W at: [ 564.528256] [] __lock_acquire+0x66b/0x139c [ 564.543390] [] lock_acquire+0x5f/0xbc [ 564.557225] [] _raw_spin_lock+0x21/0x2c [ 564.571585] [] try_to_wake_up+0x14b/0x238 [ 564.586468] [] __queue_work+0xad/0x308 [ 564.600566] [] run_timer_softirq+0xf7/0x29c [ 564.615958] [] __do_softirq+0xb5/0x1a0 [ 564.630047] [] irq_exit+0x5f/0x64 [ 564.642839] [] handle_IRQ+0x39/0x7c [ 564.656147] [] gic_handle_irq+0x19/0x40 [ 564.670498] [] __irq_svc+0x3f/0x80 [ 564.683551] [] _raw_spin_unlock_irqrestore+0x24/0x34 [ 564.701292] [] mm_release+0x51/0x9c [ 564.714609] [] exit_mm+0x11/0xf0 [ 564.727141] [] do_exit+0xe7/0x59c [ 564.739932] [] kernel_thread_exit+0x5/0x8 [ 564.754798] IN-RECLAIM_FS-W at: [ 564.764989] [] __lock_acquire+0x721/0x139c [ 564.780123] [] lock_acquire+0x5f/0xbc [ 564.793954] [] _raw_spin_lock+0x21/0x2c [ 564.808309] [] task_rq_lock+0x2f/0x5c [ 564.822147] [] set_cpus_allowed_ptr+0x15/0xe0 [ 564.838061] [] kswapd+0x5ab/0x674 [ 564.850852] [] kthread+0x5b/0x68 [ 564.863383] [] kernel_thread_exit+0x1/0x8 [ 564.878249] INITIAL USE at: [ 564.887393] [] __lock_acquire+0x20d/0x139c [ 564.902528] [] lock_acquire+0x5f/0xbc [ 564.916361] [] _raw_spin_lock_irqsave+0x2b/0x38 [ 564.932798] [] rq_attach_root+0xf/0xf4 [ 564.946889] [] sched_init+0x11f/0x214 [ 564.960719] [] start_kernel+0x127/0x270 [ 564.975066] [<6000804f>] 0x6000804f [ 564.985759] } [ 564.990744] ... key at: [] __key.38721+0x0/0x2c [ 565.008470] ... acquired at: [ 565.017354] [] check_irq_usage+0x49/0x8c [ 565.032488] [] __lock_acquire+0xa01/0x139c [ 565.048144] [] lock_acquire+0x5f/0xbc [ 565.062495] [] _raw_spin_lock+0x21/0x2c [ 565.077374] [] nr_blockdev_pages+0xb/0x40 [ 565.092773] [] si_meminfo+0x29/0x38 [ 565.106702] [] wq_sched_handler+0x22/0xb8 [gator] [ 565.124214] [] gator_events_meminfo_read+0x54/0x60 [gator] [ 565.144061] [] collect_counters+0x54/0x110 [gator] [ 565.161819] [] probe_sched_write+0x62/0x70 [gator] [ 565.179576] [] probe_sched_switch+0xe/0x10 [gator] [ 565.197315] [] __schedule+0x59d/0x640 [ 565.211687] [] userspace_buffer_read+0x74/0x20c [gator] [ 565.230735] [] vfs_read+0x61/0xc4 [ 565.244045] [] sys_read+0x29/0x4c [ 565.257362] [] ret_fast_syscall+0x1/0x52 [ 565.272483] [ 565.276934] [ 565.276934] the dependencies between the lock to be acquired and HARDIRQ-irq-unsafe lock: [ 565.305932] -> (bdev_lock){+.+...} ops: 173 { [ 565.318976] HARDIRQ-ON-W at: [ 565.328387] [] __lock_acquire+0x681/0x139c [ 565.343522] [] lock_acquire+0x5f/0xbc [ 565.357354] [] _raw_spin_lock+0x21/0x2c [ 565.371711] [] nr_blockdev_pages+0xb/0x40 [ 565.386584] [] si_meminfo+0x29/0x38 [ 565.399906] [] eventpoll_init+0x15/0x90 [ 565.414257] [] do_one_initcall+0x21/0x108 [ 565.429129] [] kernel_init+0xbf/0x14c [ 565.442963] [] kernel_thread_exit+0x1/0x8 [ 565.457829] SOFTIRQ-ON-W at: [ 565.467238] [] __lock_acquire+0x69f/0x139c [ 565.482371] [] lock_acquire+0x5f/0xbc [ 565.496202] [] _raw_spin_lock+0x21/0x2c [ 565.510555] [] nr_blockdev_pages+0xb/0x40 [ 565.525428] [] si_meminfo+0x29/0x38 [ 565.538740] [] eventpoll_init+0x15/0x90 [ 565.553092] [] do_one_initcall+0x21/0x108 [ 565.567961] [] kernel_init+0xbf/0x14c [ 565.581794] [] kernel_thread_exit+0x1/0x8 [ 565.596660] INITIAL USE at: [ 565.605806] [] __lock_acquire+0x20d/0x139c [ 565.620940] [] lock_acquire+0x5f/0xbc [ 565.634772] [] _raw_spin_lock+0x21/0x2c [ 565.649124] [] nr_blockdev_pages+0xb/0x40 [ 565.663995] [] si_meminfo+0x29/0x38 [ 565.677305] [] eventpoll_init+0x15/0x90 [ 565.691655] [] do_one_initcall+0x21/0x108 [ 565.706527] [] kernel_init+0xbf/0x14c [ 565.720360] [] kernel_thread_exit+0x1/0x8 [ 565.735221] } [ 565.740210] ... key at: [] bdev_lock+0x10/0x40 [ 565.757676] ... acquired at: [ 565.766563] [] check_irq_usage+0x49/0x8c [ 565.781697] [] __lock_acquire+0xa01/0x139c [ 565.797353] [] lock_acquire+0x5f/0xbc [ 565.811705] [] _raw_spin_lock+0x21/0x2c [ 565.826580] [] nr_blockdev_pages+0xb/0x40 [ 565.841973] [] si_meminfo+0x29/0x38 [ 565.855853] [] wq_sched_handler+0x22/0xb8 [gator] [ 565.873360] [] gator_events_meminfo_read+0x54/0x60 [gator] [ 565.893204] [] collect_counters+0x54/0x110 [gator] [ 565.910962] [] probe_sched_write+0x62/0x70 [gator] [ 565.928719] [] probe_sched_switch+0xe/0x10 [gator] [ 565.946458] [] __schedule+0x59d/0x640 [ 565.960829] [] userspace_buffer_read+0x74/0x20c [gator] [ 565.979869] [] vfs_read+0x61/0xc4 [ 565.993179] [] sys_read+0x29/0x4c [ 566.006492] [] ret_fast_syscall+0x1/0x52 [ 566.021612] [ 566.026056] [ 566.026056] stack backtrace: [ 566.039132] [] (unwind_backtrace+0x1/0x98) from [] (check_usage+0x2bb/0x408) [ 566.065474] [] (check_usage+0x2bb/0x408) from [] (check_irq_usage+0x49/0x8c) [ 566.091815] [] (check_irq_usage+0x49/0x8c) from [] (__lock_acquire+0xa01/0x139c) [ 566.119196] [] (__lock_acquire+0xa01/0x139c) from [] (lock_acquire+0x5f/0xbc) [ 566.145796] [] (lock_acquire+0x5f/0xbc) from [] (_raw_spin_lock+0x21/0x2c) [ 566.171619] [] (_raw_spin_lock+0x21/0x2c) from [] (nr_blockdev_pages+0xb/0x40) [ 566.198480] [] (nr_blockdev_pages+0xb/0x40) from [] (si_meminfo+0x29/0x38) [ 566.224332] [] (si_meminfo+0x29/0x38) from [] (wq_sched_handler+0x22/0xb8 [gator]) [ 566.252291] [] (wq_sched_handler+0x22/0xb8 [gator]) from [] (gator_events_meminfo_read+0x54/0x60 [gator]) [ 566.286231] [] (gator_events_meminfo_read+0x54/0x60 [gator]) from [] (collect_counters+0x54/0x110 [gator]) [ 566.320424] [] (collect_counters+0x54/0x110 [gator]) from [] (probe_sched_write+0x62/0x70 [gator]) [ 566.352528] [] (probe_sched_write+0x62/0x70 [gator]) from [] (probe_sched_switch+0xe/0x10 [gator]) [ 566.384614] [] (probe_sched_switch+0xe/0x10 [gator]) from [] (__schedule+0x59d/0x640) [ 566.413316] [] (__schedule+0x59d/0x640) from [] (userspace_buffer_read+0x74/0x20c [gator]) [ 566.443321] [] (userspace_buffer_read+0x74/0x20c [gator]) from [] (vfs_read+0x61/0xc4) [ 566.472263] [] (vfs_read+0x61/0xc4) from [] (sys_read+0x29/0x4c) [ 566.495479] [] (sys_read+0x29/0x4c) from [] (ret_fast_syscall+0x1/0x52)