====================================================== [ INFO: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected ] 3.14.0-rc1-mm1 #1 Not tainted ------------------------------------------------------ kswapd0/48 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire: (&(&lru->node[i].lock)->rlock){+.+.-.}, at: [<ffffffff81117064>] list_lru_add+0x80/0xf4 s already holding: (&(&mapping->tree_lock)->rlock){..-.-.}, at: [<ffffffff81108c63>] __remove_mapping+0x3b/0x12d which would create a new lock dependency: (&(&mapping->tree_lock)->rlock){..-.-.} -> (&(&lru->node[i].lock)->rlock){+.+.-.} pendency connects a SOFTIRQ-irq-safe lock: (&(&mapping->tree_lock)->rlock){..-.-.} e SOFTIRQ-irq-safe at: [<ffffffff810bd9ea>] __lock_acquire+0x589/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff8159a015>] _raw_spin_lock_irqsave+0x3f/0x51 [<ffffffff81105649>] test_clear_page_writeback+0x96/0x2a5 [<ffffffff810fab96>] end_page_writeback+0x17/0x41 [<ffffffff8117ac39>] end_buffer_async_write+0x12a/0x1aa [<ffffffff8117bc75>] end_bio_bh_io_sync+0x31/0x3c [<ffffffff8117f693>] bio_endio+0x50/0x6e [<ffffffff8122f398>] blk_update_request+0x16c/0x2fe [<ffffffff8122f541>] blk_update_bidi_request+0x17/0x65 [<ffffffff8122f889>] blk_end_bidi_request+0x1a/0x56 [<ffffffff8122f8d0>] blk_end_request+0xb/0xd [<ffffffff81384540>] scsi_io_completion+0x16f/0x474 [<ffffffff8137ddb4>] scsi_finish_command+0xb6/0xbf [<ffffffff81384332>] scsi_softirq_done+0xe9/0xf0 [<ffffffff81235239>] blk_done_softirq+0x79/0x8b [<ffffffff810833aa>] __do_softirq+0xf7/0x213 [<ffffffff810836bd>] irq_exit+0x3d/0x92 [<ffffffff810317d4>] do_IRQ+0xb3/0xcc [<ffffffff8159aaac>] ret_from_intr+0x0/0x13 [<ffffffff810a31e8>] __might_sleep+0x71/0x198 [<ffffffff815997ff>] console_conditional_schedule+0x20/0x27 [<ffffffff812863b0>] fbcon_redraw.isra.20+0xee/0x15c [<ffffffff81286a3a>] fbcon_scroll+0x61c/0xba3 [<ffffffff812d4a36>] scrup+0xc5/0xe0 [<ffffffff812d4a7a>] lf+0x29/0x61 [<ffffffff812d7409>] do_con_trol+0x162/0x129d [<ffffffff812d8cab>] do_con_write+0x767/0x7f4 [<ffffffff812d8d72>] con_write+0xe/0x20 [<ffffffff812c652d>] do_output_char+0x8b/0x1a6 [<ffffffff812c71e5>] n_tty_write+0x2ab/0x3c8 [<ffffffff812c3fe9>] tty_write+0x1a9/0x241 [<ffffffff812c4109>] redirected_tty_write+0x88/0x91 [<ffffffff81152702>] do_loop_readv_writev+0x43/0x72 [<ffffffff81153840>] do_readv_writev+0xf7/0x1be [<ffffffff8115397c>] vfs_writev+0x32/0x46 [<ffffffff81153a4d>] SyS_writev+0x44/0x78 [<ffffffff8159b2e2>] system_call_fastpath+0x16/0x1b q-unsafe lock: (&(&lru->node[i].lock)->rlock){+.+.-.} e SOFTIRQ-irq-unsafe at: ... [<ffffffff810bda61>] __lock_acquire+0x600/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff81599ef7>] _raw_spin_lock+0x34/0x41 [<ffffffff81117064>] list_lru_add+0x80/0xf4 [<ffffffff811652c4>] dput+0xb8/0x107 [<ffffffff8115acfb>] path_put+0x11/0x1c [<ffffffff8115f6f3>] path_openat+0x4eb/0x58c [<ffffffff81160440>] do_filp_open+0x35/0x7a [<ffffffff811570f4>] open_exec+0x36/0xd7 [<ffffffff81158b28>] do_execve_common.isra.33+0x280/0x6b4 [<ffffffff81158f6f>] do_execve+0x13/0x15 [<ffffffff810001ec>] try_to_run_init_process+0x24/0x49 [<ffffffff81584e8b>] kernel_init+0xb9/0xff [<ffffffff8159b23c>] ret_from_fork+0x7c/0xb0 might help us debug this: Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&(&lru->node[i].lock)->rlock); local_irq_disable(); lock(&(&mapping->tree_lock)->rlock); lock(&(&lru->node[i].lock)->rlock); <Interrupt> lock(&(&mapping->tree_lock)->rlock); ** 1 lock held by kswapd0/48: #0: (&(&mapping->tree_lock)->rlock){..-.-.}, at: [<ffffffff81108c63>] __remove_mapping+0x3b/0x12d s between SOFTIRQ-irq-safe lock and the holding lock: -> (&(&mapping->tree_lock)->rlock){..-.-.} ops: 139535 { IN-SOFTIRQ-W at: [<ffffffff810bd9ea>] __lock_acquire+0x589/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff8159a015>] _raw_spin_lock_irqsave+0x3f/0x51 [<ffffffff81105649>] test_clear_page_writeback+0x96/0x2a5 [<ffffffff810fab96>] end_page_writeback+0x17/0x41 [<ffffffff8117ac39>] end_buffer_async_write+0x12a/0x1aa [<ffffffff8117bc75>] end_bio_bh_io_sync+0x31/0x3c [<ffffffff8117f693>] bio_endio+0x50/0x6e [<ffffffff8122f398>] blk_update_request+0x16c/0x2fe [<ffffffff8122f541>] blk_update_bidi_request+0x17/0x65 [<ffffffff8122f889>] blk_end_bidi_request+0x1a/0x56 [<ffffffff8122f8d0>] blk_end_request+0xb/0xd [<ffffffff81384540>] scsi_io_completion+0x16f/0x474 [<ffffffff8137ddb4>] scsi_finish_command+0xb6/0xbf [<ffffffff81384332>] scsi_softirq_done+0xe9/0xf0 [<ffffffff81235239>] blk_done_softirq+0x79/0x8b [<ffffffff810833aa>] __do_softirq+0xf7/0x213 [<ffffffff810836bd>] irq_exit+0x3d/0x92 [<ffffffff810317d4>] do_IRQ+0xb3/0xcc [<ffffffff8159aaac>] ret_from_intr+0x0/0x13 [<ffffffff810a31e8>] __might_sleep+0x71/0x198 [<ffffffff815997ff>] console_conditional_schedule+0x20/0x27 [<ffffffff812863b0>] fbcon_redraw.isra.20+0xee/0x15c [<ffffffff81286a3a>] fbcon_scroll+0x61c/0xba3 [<ffffffff812d4a36>] scrup+0xc5/0xe0 [<ffffffff812d4a7a>] lf+0x29/0x61 [<ffffffff812d7409>] do_con_trol+0x162/0x129d [<ffffffff812d8cab>] do_con_write+0x767/0x7f4 [<ffffffff812d8d72>] con_write+0xe/0x20 [<ffffffff812c652d>] do_output_char+0x8b/0x1a6 [<ffffffff812c71e5>] n_tty_write+0x2ab/0x3c8 [<ffffffff812c3fe9>] tty_write+0x1a9/0x241 [<ffffffff812c4109>] redirected_tty_write+0x88/0x91 [<ffffffff81152702>] do_loop_readv_writev+0x43/0x72 [<ffffffff81153840>] do_readv_writev+0xf7/0x1be [<ffffffff8115397c>] vfs_writev+0x32/0x46 [<ffffffff81153a4d>] SyS_writev+0x44/0x78 [<ffffffff8159b2e2>] system_call_fastpath+0x16/0x1b IN-RECLAIM_FS-W at: [<ffffffff810bda90>] __lock_acquire+0x62f/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff8159a061>] _raw_spin_lock_irq+0x3a/0x47 [<ffffffff81108c63>] __remove_mapping+0x3b/0x12d [<ffffffff8110a1b8>] shrink_page_list+0x6e7/0x8db [<ffffffff8110a9ca>] shrink_inactive_list+0x24e/0x391 [<ffffffff8110b1b6>] shrink_lruvec+0x3e3/0x589 [<ffffffff8110b3bb>] shrink_zone+0x5f/0x159 [<ffffffff8110c09a>] balance_pgdat+0x32c/0x4fd [<ffffffff8110c56f>] kswapd+0x304/0x331 [<ffffffff8109c7b9>] kthread+0xf1/0xf9 [<ffffffff8159b23c>] ret_from_fork+0x7c/0xb0 INITIAL USE at: [<ffffffff810bdaa8>] __lock_acquire+0x647/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff8159a061>] _raw_spin_lock_irq+0x3a/0x47 [<ffffffff8110e6ba>] shmem_add_to_page_cache.isra.25+0x7f/0x102 [<ffffffff8110ea91>] shmem_getpage_gfp+0x354/0x658 [<ffffffff8110ef4d>] shmem_read_mapping_page_gfp+0x2e/0x49 [<ffffffff81313f78>] i915_gem_object_get_pages_gtt+0xe9/0x417 [<ffffffff813103e4>] i915_gem_object_get_pages+0x59/0x85 [<ffffffff8131389e>] i915_gem_object_pin+0x22f/0x4e0 [<ffffffff81316899>] i915_gem_create_context+0x208/0x404 [<ffffffff81316d5e>] i915_gem_context_init+0x12e/0x1f0 [<ffffffff8131241b>] i915_gem_init+0xdc/0x19a [<ffffffff81304949>] i915_driver_load+0xa28/0xd38 [<ffffffff812f0890>] drm_dev_register+0xd2/0x14a [<ffffffff812f29e8>] drm_get_pci_dev+0x104/0x1d4 [<ffffffff8130195e>] i915_pci_probe+0x40/0x49 [<ffffffff81271813>] local_pci_probe+0x1f/0x51 [<ffffffff8127190b>] pci_device_probe+0xc6/0xec [<ffffffff8136e28b>] driver_probe_device+0x90/0x19b [<ffffffff8136e42a>] __driver_attach+0x5c/0x7e [<ffffffff8136c9b3>] bus_for_each_dev+0x55/0x89 [<ffffffff8136df3a>] driver_attach+0x19/0x1b [<ffffffff8136dae6>] bus_add_driver+0xec/0x1d3 [<ffffffff8136e975>] driver_register+0x89/0xc5 [<ffffffff81270fe5>] __pci_register_driver+0x58/0x5b [<ffffffff812f2b1c>] drm_pci_init+0x64/0xe8 [<ffffffff8194b5cf>] i915_init+0x6a/0x6c [<ffffffff81000290>] do_one_initcall+0x7f/0x10b [<ffffffff81927e5c>] kernel_init_freeable+0x104/0x196 [<ffffffff81584ddb>] kernel_init+0x9/0xff [<ffffffff8159b23c>] ret_from_fork+0x7c/0xb0 } ... key at: [<ffffffff8226dd20>] __key.30540+0x0/0x8 ... acquired at: [<ffffffff810bb9e7>] check_irq_usage+0x54/0xa8 [<ffffffff810bc2b7>] validate_chain.isra.22+0x87c/0xe96 [<ffffffff810bdcbf>] __lock_acquire+0x85e/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff81599ef7>] _raw_spin_lock+0x34/0x41 [<ffffffff81117064>] list_lru_add+0x80/0xf4 [<ffffffff810fbe92>] __delete_from_page_cache+0x122/0x1cc [<ffffffff81108d1c>] __remove_mapping+0xf4/0x12d [<ffffffff8110a1b8>] shrink_page_list+0x6e7/0x8db [<ffffffff8110a9ca>] shrink_inactive_list+0x24e/0x391 [<ffffffff8110b1b6>] shrink_lruvec+0x3e3/0x589 [<ffffffff8110b3bb>] shrink_zone+0x5f/0x159 [<ffffffff8110c09a>] balance_pgdat+0x32c/0x4fd [<ffffffff8110c56f>] kswapd+0x304/0x331 [<ffffffff8109c7b9>] kthread+0xf1/0xf9 [<ffffffff8159b23c>] ret_from_fork+0x7c/0xb0 s between the lock to be acquired and SOFTIRQ-irq-unsafe lock: -> (&(&lru->node[i].lock)->rlock){+.+.-.} ops: 13037 { HARDIRQ-ON-W at: [<ffffffff810bda40>] __lock_acquire+0x5df/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff81599ef7>] _raw_spin_lock+0x34/0x41 [<ffffffff81117064>] list_lru_add+0x80/0xf4 [<ffffffff811652c4>] dput+0xb8/0x107 [<ffffffff8115acfb>] path_put+0x11/0x1c [<ffffffff8115f6f3>] path_openat+0x4eb/0x58c [<ffffffff81160440>] do_filp_open+0x35/0x7a [<ffffffff811570f4>] open_exec+0x36/0xd7 [<ffffffff81158b28>] do_execve_common.isra.33+0x280/0x6b4 [<ffffffff81158f6f>] do_execve+0x13/0x15 [<ffffffff810001ec>] try_to_run_init_process+0x24/0x49 [<ffffffff81584e8b>] kernel_init+0xb9/0xff [<ffffffff8159b23c>] ret_from_fork+0x7c/0xb0 SOFTIRQ-ON-W at: [<ffffffff810bda61>] __lock_acquire+0x600/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff81599ef7>] _raw_spin_lock+0x34/0x41 [<ffffffff81117064>] list_lru_add+0x80/0xf4 [<ffffffff811652c4>] dput+0xb8/0x107 [<ffffffff8115acfb>] path_put+0x11/0x1c [<ffffffff8115f6f3>] path_openat+0x4eb/0x58c [<ffffffff81160440>] do_filp_open+0x35/0x7a [<ffffffff811570f4>] open_exec+0x36/0xd7 [<ffffffff81158b28>] do_execve_common.isra.33+0x280/0x6b4 [<ffffffff81158f6f>] do_execve+0x13/0x15 [<ffffffff810001ec>] try_to_run_init_process+0x24/0x49 [<ffffffff81584e8b>] kernel_init+0xb9/0xff [<ffffffff8159b23c>] ret_from_fork+0x7c/0xb0 IN-RECLAIM_FS-W at: [<ffffffff810bda90>] __lock_acquire+0x62f/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff81599ef7>] _raw_spin_lock+0x34/0x41 [<ffffffff811170f1>] list_lru_count_node+0x19/0x55 [<ffffffff811558b3>] super_cache_count+0x5f/0xb5 [<ffffffff81108a35>] shrink_slab_node+0x40/0x171 [<ffffffff8110946e>] shrink_slab+0x76/0x134 [<ffffffff8110c0d1>] balance_pgdat+0x363/0x4fd [<ffffffff8110c56f>] kswapd+0x304/0x331 [<ffffffff8109c7b9>] kthread+0xf1/0xf9 [<ffffffff8159b23c>] ret_from_fork+0x7c/0xb0 INITIAL USE at: [<ffffffff810bdaa8>] __lock_acquire+0x647/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff81599ef7>] _raw_spin_lock+0x34/0x41 [<ffffffff81117064>] list_lru_add+0x80/0xf4 [<ffffffff811652c4>] dput+0xb8/0x107 [<ffffffff8115acfb>] path_put+0x11/0x1c [<ffffffff8115f6f3>] path_openat+0x4eb/0x58c [<ffffffff81160440>] do_filp_open+0x35/0x7a [<ffffffff811570f4>] open_exec+0x36/0xd7 [<ffffffff81158b28>] do_execve_common.isra.33+0x280/0x6b4 [<ffffffff81158f6f>] do_execve+0x13/0x15 [<ffffffff810001ec>] try_to_run_init_process+0x24/0x49 [<ffffffff81584e8b>] kernel_init+0xb9/0xff [<ffffffff8159b23c>] ret_from_fork+0x7c/0xb0 } ... key at: [<ffffffff82260bf0>] __key.17506+0x0/0x10 ... acquired at: [<ffffffff810bb9e7>] check_irq_usage+0x54/0xa8 [<ffffffff810bc2b7>] validate_chain.isra.22+0x87c/0xe96 [<ffffffff810bdcbf>] __lock_acquire+0x85e/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff81599ef7>] _raw_spin_lock+0x34/0x41 [<ffffffff81117064>] list_lru_add+0x80/0xf4 [<ffffffff810fbe92>] __delete_from_page_cache+0x122/0x1cc [<ffffffff81108d1c>] __remove_mapping+0xf4/0x12d [<ffffffff8110a1b8>] shrink_page_list+0x6e7/0x8db [<ffffffff8110a9ca>] shrink_inactive_list+0x24e/0x391 [<ffffffff8110b1b6>] shrink_lruvec+0x3e3/0x589 [<ffffffff8110b3bb>] shrink_zone+0x5f/0x159 [<ffffffff8110c09a>] balance_pgdat+0x32c/0x4fd [<ffffffff8110c56f>] kswapd+0x304/0x331 [<ffffffff8109c7b9>] kthread+0xf1/0xf9 [<ffffffff8159b23c>] ret_from_fork+0x7c/0xb0 : CPU: 3 PID: 48 Comm: kswapd0 Not tainted 3.14.0-rc1-mm1 #1 Hardware name: LENOVO 4174EH1/4174EH1, BIOS 8CET51WW (1.31 ) 11/29/2011 0000000000000000 ffff880029e37688 ffffffff8158f143 ffff880029e39428 ffff880029e37780 ffffffff810bb982 0000000000000000 0000000000000000 ffff880000000001 0000000400000006 ffffffff817dac97 ffff880029e376d0 Call Trace: [<ffffffff8158f143>] dump_stack+0x4e/0x7a [<ffffffff810bb982>] check_usage+0x591/0x5a2 [<ffffffff810bb9e7>] check_irq_usage+0x54/0xa8 [<ffffffff810bc2b7>] validate_chain.isra.22+0x87c/0xe96 [<ffffffff810bdcbf>] __lock_acquire+0x85e/0x954 [<ffffffff810be3f4>] lock_acquire+0x61/0x78 [<ffffffff81117064>] ? list_lru_add+0x80/0xf4 [<ffffffff81599ef7>] _raw_spin_lock+0x34/0x41 [<ffffffff81117064>] ? list_lru_add+0x80/0xf4 [<ffffffff81117064>] list_lru_add+0x80/0xf4 [<ffffffff810fbe92>] __delete_from_page_cache+0x122/0x1cc [<ffffffff81108d1c>] __remove_mapping+0xf4/0x12d [<ffffffff8110a1b8>] shrink_page_list+0x6e7/0x8db [<ffffffff810bd182>] ? trace_hardirqs_on_caller+0x142/0x19e [<ffffffff8110a9ca>] shrink_inactive_list+0x24e/0x391 [<ffffffff8110b1b6>] shrink_lruvec+0x3e3/0x589 [<ffffffff8110b3bb>] shrink_zone+0x5f/0x159 [<ffffffff8110c09a>] balance_pgdat+0x32c/0x4fd [<ffffffff8110c56f>] kswapd+0x304/0x331 [<ffffffff810b5e6b>] ? abort_exclusive_wait+0x84/0x84 [<ffffffff8110c26b>] ? balance_pgdat+0x4fd/0x4fd [<ffffffff8109c7b9>] kthread+0xf1/0xf9 [<ffffffff8159a1bc>] ? _raw_spin_unlock_irq+0x27/0x46 [<ffffffff8109c6c8>] ? kthread_stop+0x5a/0x5a [<ffffffff8159b23c>] ret_from_fork+0x7c/0xb0 [<ffffffff8109c6c8>] ? kthread_stop+0x5a/0x5a -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>