Re: mm: lockup on mmap_sem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 1, 2013 at 1:55 AM, Sasha Levin <sasha.levin@xxxxxxxxxx> wrote:
> Hi all,
>
> While fuzzing with trinity inside a KVM tools guest, running latest -next kernel,
> I've stumbled on the following hang:
>
> [ 7204.030178] INFO: task khugepaged:3257 blocked for more than 120 seconds.
> [ 7204.031043] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> [ 7204.032056] khugepaged      D 00000000001d6dc0  5144  3257      2 0x00000000
> [ 7204.032969]  ffff8800be8bdc00 0000000000000002 ffff880007dd6e78 ffff880007dd6e78
> [ 7204.033959]  ffff8800bf9cb000 ffff8800be8b3000 ffff8800be8bdc00 00000000001d6dc0
> [ 7204.034994]  ffff8800be8b3000 ffff8800be8bdfd8 00000000001d6dc0 00000000001d6dc0
> [ 7204.036057] Call Trace:
> [ 7204.036388]  [<ffffffff83ce3ae9>] __schedule+0x2e9/0x3b0
> [ 7204.037090]  [<ffffffff83ce3d15>] schedule+0x55/0x60
> [ 7204.037711]  [<ffffffff83ce4c35>] rwsem_down_failed_common+0xf5/0x130
> [ 7204.038511]  [<ffffffff83ce4ca5>] rwsem_down_read_failed+0x15/0x17
> [ 7204.039292]  [<ffffffff81a139a4>] call_rwsem_down_read_failed+0x14/0x30
> [ 7204.040207]  [<ffffffff83ce3349>] ? down_read+0x79/0x8e
> [ 7204.040895]  [<ffffffff81276147>] ? khugepaged_scan_mm_slot+0xa7/0x2b0
> [ 7204.041689]  [<ffffffff83ce55b0>] ? _raw_spin_unlock+0x30/0x60
> [ 7204.042482]  [<ffffffff81276147>] khugepaged_scan_mm_slot+0xa7/0x2b0
> [ 7204.043299]  [<ffffffff8127644d>] khugepaged_do_scan+0xfd/0x1a0
> [ 7204.044105]  [<ffffffff812764f0>] ? khugepaged_do_scan+0x1a0/0x1a0
> [ 7204.044874]  [<ffffffff81276515>] khugepaged+0x25/0x70
> [ 7204.045527]  [<ffffffff8113f1b3>] kthread+0xe3/0xf0
> [ 7204.046129]  [<ffffffff8113f0d0>] ? flush_kthread_worker+0x190/0x190
> [ 7204.046905]  [<ffffffff83ce68fc>] ret_from_fork+0x7c/0xb0
> [ 7204.047609]  [<ffffffff8113f0d0>] ? flush_kthread_worker+0x190/0x190
> [ 7204.048524] 1 lock held by khugepaged/3257:
> [ 7204.049046]  #0:  (&mm->mmap_sem){++++++}, at: [<ffffffff81276147>] khugepaged_scan_mm_slot+0xa7/0x2b0
> [ 7204.050449] INFO: task trinity-child22:15461 blocked for more than 120 seconds.
> [ 7204.051355] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> [ 7204.052390] trinity-child22 D ffff88000c00e4c0  4920 15461   6883 0x00000004
> [ 7204.053347]  ffff88002fba9bc0 0000000000000002 ffff88000b6c2000 ffff88000b6c2000
> [ 7204.054387]  ffff880008003000 ffff880007898000 ffff88002fba9bc0 00000000001d6dc0
> [ 7204.055373]  ffff880007898000 ffff88002fba9fd8 00000000001d6dc0 00000000001d6dc0
> [ 7204.056396] Call Trace:
> [ 7204.056703]  [<ffffffff83ce3ae9>] __schedule+0x2e9/0x3b0
> [ 7204.057402]  [<ffffffff83ce3d15>] schedule+0x55/0x60
> [ 7204.058036]  [<ffffffff83ce4c35>] rwsem_down_failed_common+0xf5/0x130
> [ 7204.058826]  [<ffffffff83ce4ca5>] rwsem_down_read_failed+0x15/0x17
> [ 7204.059588]  [<ffffffff81a139a4>] call_rwsem_down_read_failed+0x14/0x30
> [ 7204.060502]  [<ffffffff83ce3349>] ? down_read+0x79/0x8e
> [ 7204.061188]  [<ffffffff8125fa16>] ? do_migrate_pages+0x56/0x2b0
> [ 7204.061906]  [<ffffffff81220d50>] ? lru_add_drain_all+0x10/0x20
> [ 7204.062648]  [<ffffffff8125fa16>] do_migrate_pages+0x56/0x2b0
> [ 7204.063418]  [<ffffffff81a26ef8>] ? do_raw_spin_unlock+0xc8/0xe0
> [ 7204.064240]  [<ffffffff8194e573>] ? security_capable+0x13/0x20
> [ 7204.064865]  [<ffffffff8111d8c0>] ? ns_capable+0x50/0x80
> [ 7204.065443]  [<ffffffff812601c2>] sys_migrate_pages+0x4e2/0x550
> [ 7204.065964]  [<ffffffff8125fd98>] ? sys_migrate_pages+0xb8/0x550
> [ 7204.066513]  [<ffffffff83ce6bd8>] tracesys+0xe1/0xe6
> [ 7204.067011] 1 lock held by trinity-child22/15461:
> [ 7204.067452]  #0:  (&mm->mmap_sem){++++++}, at: [<ffffffff8125fa16>] do_migrate_pages+0x56/0x2b0
> [ 7204.068489] INFO: task trinity-child16:15829 blocked for more than 120 seconds.
> [ 7204.069224] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> [ 7204.070057] trinity-child16 D ffff880008ba74c0  5128 15829   6883 0x00000004
> [ 7204.070732]  ffff88000c791bc0 0000000000000002 ffff880012dd6000 ffff880012dd6000
> [ 7204.071550]  ffff88000c083000 ffff88000d808000 ffff88000c791bc0 00000000001d6dc0
> [ 7204.072380]  ffff88000d808000 ffff88000c791fd8 00000000001d6dc0 00000000001d6dc0
> [ 7204.073323] Call Trace:
> [ 7204.073614]  [<ffffffff83ce3ae9>] __schedule+0x2e9/0x3b0
> [ 7204.074179]  [<ffffffff83ce3d15>] schedule+0x55/0x60
> [ 7204.074619]  [<ffffffff83ce4c35>] rwsem_down_failed_common+0xf5/0x130
> [ 7204.075285]  [<ffffffff83ce4ca5>] rwsem_down_read_failed+0x15/0x17
> [ 7204.075839]  [<ffffffff81a139a4>] call_rwsem_down_read_failed+0x14/0x30
> [ 7204.076435]  [<ffffffff83ce3349>] ? down_read+0x79/0x8e
> [ 7204.076900]  [<ffffffff8125fa16>] ? do_migrate_pages+0x56/0x2b0
> [ 7204.077623]  [<ffffffff81220d50>] ? lru_add_drain_all+0x10/0x20
> [ 7204.078360]  [<ffffffff8125fa16>] do_migrate_pages+0x56/0x2b0
> [ 7204.079063]  [<ffffffff81a26ef8>] ? do_raw_spin_unlock+0xc8/0xe0
> [ 7204.079622]  [<ffffffff8194e573>] ? security_capable+0x13/0x20
> [ 7204.080329]  [<ffffffff8111d8c0>] ? ns_capable+0x50/0x80
> [ 7204.080938]  [<ffffffff812601c2>] sys_migrate_pages+0x4e2/0x550
> [ 7204.081692]  [<ffffffff8125fd98>] ? sys_migrate_pages+0xb8/0x550
> [ 7204.082241]  [<ffffffff83ce6bd8>] tracesys+0xe1/0xe6
> [ 7204.082735] 1 lock held by trinity-child16/15829:
> [ 7204.083401]  #0:  (&mm->mmap_sem){++++++}, at: [<ffffffff8125fa16>] do_migrate_pages+0x56/0x2b0
>
> I'm not quite sure how it happened, but I've attached a full sysrq-t which could possibly
> help with figuring it out.
>
Hey Sasha

Can you please try with the following commits reverted?

Hillf


[1] commit: 5a505085f
mm/rmap: Convert the struct anon_vma::mutex to an rwsem

[2] commit: 4fc3f1d66
mm/rmap, migration: Make rmap_walk_anon() and try_to_unmap_anon() more scalable

--
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>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]