New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 721937 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Should we somehow prioritize memory allocations from writeback workers?

Project Member Reported by diand...@chromium.org, May 12 2017

Issue description

I totally don't know what I'm talking about here.

...but while stressing memory on kevin, I dropped into the debugger several times when the device was particularly unresponsive.  When I did, I tended to see crawls that looked like these ones:

Stack traceback for pid 120
0xffffffc0ec60dc00      120        2  0    4   D  0xffffffc0ec60ed80  kworker/u12:2
Call trace:
[<ffffffc0002050a0>] __switch_to+0xa0/0xac
[<ffffffc0009cee64>] __schedule+0x6f8/0xa84
[<ffffffc0009cf278>] schedule+0x88/0xa8
[<ffffffc0009d5894>] schedule_timeout+0x32c/0x374
[<ffffffc0009d59c0>] schedule_timeout_uninterruptible+0x44/0x50
[<ffffffc000358220>] wait_iff_congested+0x9c/0x2d8
[<ffffffc00034d118>] shrink_inactive_list+0x3ac/0x5d4
[<ffffffc00034dabc>] shrink_lruvec+0x428/0x5d0
[<ffffffc00034dcec>] shrink_zone+0x88/0x198
[<ffffffc00034e2f8>] try_to_free_pages+0x4fc/0x76c
[<ffffffc0003409bc>] __alloc_pages_nodemask+0x684/0xac8
[<ffffffc00037f8ec>] new_slab+0xf8/0x324
[<ffffffc0003819d0>] ___slab_alloc.constprop.73+0x5f4/0x66c
[<ffffffc000381a90>] __slab_alloc.isra.69.constprop.72+0x48/0x74
[<ffffffc000381b8c>] kmem_cache_alloc+0xd0/0x32c
[<ffffffc000339fb8>] mempool_alloc_slab+0x2c/0x38
[<ffffffc00033a150>] mempool_alloc+0x94/0x190
[<ffffffc0004e74bc>] bvec_alloc+0xac/0x104
[<ffffffc0004e7644>] bio_alloc_bioset+0x130/0x1dc
[<ffffffc00041e860>] ext4_bio_write_page+0x300/0x458
[<ffffffc000414e8c>] mpage_submit_page+0x74/0xa0
[<ffffffc000414fdc>] mpage_process_page_bufs+0x124/0x150
[<ffffffc0004151ec>] mpage_prepare_extent_to_map+0x1e4/0x278
[<ffffffc000419768>] ext4_writepages+0x4ac/0x1184
[<ffffffc00034488c>] do_writepages+0x44/0x58
[<ffffffc0003be7e4>] __writeback_single_inode+0x1dc/0x930
[<ffffffc0003bf474>] writeback_sb_inodes+0x358/0x51c
[<ffffffc0003bf6bc>] __writeback_inodes_wb+0x84/0xc8
[<ffffffc0003bfaa4>] wb_writeback+0x2d0/0x664
[<ffffffc0003c08a0>] wb_workfn+0x27c/0x6c0
[<ffffffc00023f464>] process_one_work+0x3e4/0x700
[<ffffffc000240054>] worker_thread+0x300/0x428
[<ffffffc000246320>] kthread+0x120/0x128
[<ffffffc000203dd0>] ret_from_fork+0x10/0x40
Stack traceback for pid 162
0xffffffc0eb4cdc00      162        2  0    1   D  0xffffffc0eb4ced80  kworker/u12:5
Call trace:
[<ffffffc0002050a0>] __switch_to+0xa0/0xac
[<ffffffc0009cee64>] __schedule+0x6f8/0xa84
[<ffffffc0009cf278>] schedule+0x88/0xa8
[<ffffffc0009d5894>] schedule_timeout+0x32c/0x374
[<ffffffc0009d59c0>] schedule_timeout_uninterruptible+0x44/0x50
[<ffffffc000358220>] wait_iff_congested+0x9c/0x2d8
[<ffffffc00034d118>] shrink_inactive_list+0x3ac/0x5d4
[<ffffffc00034dabc>] shrink_lruvec+0x428/0x5d0
[<ffffffc00034dcec>] shrink_zone+0x88/0x198
[<ffffffc00034e2f8>] try_to_free_pages+0x4fc/0x76c
[<ffffffc0003409bc>] __alloc_pages_nodemask+0x684/0xac8
[<ffffffc00037f8ec>] new_slab+0xf8/0x324
[<ffffffc0003819d0>] ___slab_alloc.constprop.73+0x5f4/0x66c
[<ffffffc000381a90>] __slab_alloc.isra.69.constprop.72+0x48/0x74
[<ffffffc000381b8c>] kmem_cache_alloc+0xd0/0x32c
[<ffffffc000339fb8>] mempool_alloc_slab+0x2c/0x38
[<ffffffc00033a150>] mempool_alloc+0x94/0x190
[<ffffffc0004e74bc>] bvec_alloc+0xac/0x104
[<ffffffc0004e7644>] bio_alloc_bioset+0x130/0x1dc
[<ffffffc00041e860>] ext4_bio_write_page+0x300/0x458
[<ffffffc000414e8c>] mpage_submit_page+0x74/0xa0
[<ffffffc000414fdc>] mpage_process_page_bufs+0x124/0x150
[<ffffffc0004151ec>] mpage_prepare_extent_to_map+0x1e4/0x278
[<ffffffc000419768>] ext4_writepages+0x4ac/0x1184
[<ffffffc00034488c>] do_writepages+0x44/0x58
[<ffffffc0003be7e4>] __writeback_single_inode+0x1dc/0x930
[<ffffffc0003bf474>] writeback_sb_inodes+0x358/0x51c
[<ffffffc0003bf6bc>] __writeback_inodes_wb+0x84/0xc8
[<ffffffc0003bfaa4>] wb_writeback+0x2d0/0x664
[<ffffffc0003c08a0>] wb_workfn+0x27c/0x6c0
[<ffffffc00023f464>] process_one_work+0x3e4/0x700
[<ffffffc000240054>] worker_thread+0x300/0x428
[<ffffffc000246320>] kthread+0x120/0x128
[<ffffffc000203dd0>] ret_from_fork+0x10/0x40

===

I don't _know_ that there's anything wrong here, but given that I've often been stuck here when the system was really unresponsive makes me think there might be.

I'll try to collect a few more traces, but for now here's a "dumpall" for this one.
 
170512-memorystress.txt
601 KB View Download

Sign in to add a comment