Comment 3 for bug 433646

Revision history for this message
Petr Vandrovec (petr-vmware) wrote :

I've reproed it with all daemons & programs killed - see new attachment. Apparently one of memhog threads went to sleep on malloc while adding entry to the radix tree:

<6>[ 1789.980812] memhog R running task 0 3039 3036 0x00020000
<4>[ 1789.980812] ffff88003309dc38 0000000000000086 ffff880000010800 0000000000015580
<4>[ 1789.980812] ffff88003992c7c0 0000000000015580 0000000000015580 0000000000015580
<4>[ 1789.980812] 0000000000015580 ffff88003992c7c8 0000000000015580 0000000000015580
<4>[ 1789.980812] Call Trace:
<4>[ 1789.980812] [<ffffffff8105630c>] __cond_resched+0x1c/0x50
<4>[ 1789.980812] [<ffffffff815215ab>] _cond_resched+0x2b/0x40
<4>[ 1789.980812] [<ffffffff811103e9>] kmem_cache_alloc+0xd9/0x150
<4>[ 1789.980812] [<ffffffff81271db6>] ? radix_tree_preload+0x36/0xa0
<4>[ 1789.980812] [<ffffffff81271db6>] radix_tree_preload+0x36/0xa0
<4>[ 1789.980812] [<ffffffff810ff5d1>] add_to_swap_cache+0x21/0xd0
<4>[ 1789.980812] [<ffffffff810ff706>] read_swap_cache_async+0x86/0x120
<4>[ 1789.980812] [<ffffffff810ffe96>] ? valid_swaphandles+0x166/0x190
<4>[ 1789.980812] [<ffffffff810ff81f>] swapin_readahead+0x7f/0xb0
<4>[ 1789.980812] [<ffffffff810f373e>] do_swap_page+0x2ce/0x420
<4>[ 1789.980812] [<ffffffff8104a155>] ? finish_task_switch+0x65/0x120
<4>[ 1789.980812] [<ffffffff810129ce>] ? common_interrupt+0xe/0x13
<4>[ 1789.980812] [<ffffffff810f3b5b>] handle_mm_fault+0x2cb/0x3c0
<4>[ 1789.980812] [<ffffffff81032439>] ? default_spin_lock_flags+0x9/0x10
<4>[ 1789.980812] [<ffffffff81525fba>] do_page_fault+0x16a/0x370
<4>[ 1789.980812] [<ffffffff81523975>] page_fault+0x25/0x30

while other thread then wants to read this very same entry. I have no idea why kswapd does not get woken up and swap something to unblock this thread.