From: Andrea Arcangeli <aarcange@redhat.com>
To: "Alex Villacís Lasso" <avillaci@fiec.espol.edu.ec>
Cc: Mel Gorman <mel@csn.ul.ie>,
Andrew Morton <akpm@linux-foundation.org>,
avillaci@ceibo.fiec.espol.edu.ec,
bugzilla-daemon@bugzilla.kernel.org,
bugme-daemon@bugzilla.kernel.org, linux-mm@kvack.org
Subject: Re: [Bugme-new] [Bug 31142] New: Large write to USB stick freezes unrelated tasks for a long time
Date: Mon, 21 Mar 2011 21:16:41 +0100 [thread overview]
Message-ID: <20110321201641.GA5698@random.random> (raw)
In-Reply-To: <4D878564.6080608@fiec.espol.edu.ec>
On Mon, Mar 21, 2011 at 12:05:40PM -0500, Alex Villaci-s Lasso wrote:
> El 21/03/11 11:37, Mel Gorman escribio:
> > On Mon, Mar 21, 2011 at 02:48:32PM +0100, Andrea Arcangeli wrote:
> >
> > Nothing bad jumped out at me. Lets see how it gets on with testing.
> >
> > Thanks
> >
> As with the previous patch, this one did not completely solve the freezing tasks issue. However, as with the previous patch, the freezes took longer to appear, and now lasted less (10 to 12 seconds instead of freezing until the end of the usb copy).
>
> I have attached the new sysrq-w trace to the bug report.
migrate and compaction disappeared from the traces as we hoped
for. The THP allocations left throttles on writeback during reclaim
like any 4k allocation would do:
[ 2629.256809] [<ffffffff810e43c3>] wait_on_page_writeback+0x1b/0x1d
[ 2629.256812] [<ffffffff810e5992>] shrink_page_list+0x134/0x478
[ 2629.256815] [<ffffffff810e614f>] shrink_inactive_list+0x29f/0x39a
[ 2629.256818] [<ffffffff810dbd55>] ? zone_watermark_ok+0x1f/0x21
[ 2629.256820] [<ffffffff810dfe81>] ? determine_dirtyable_memory+0x1d/0x27
[ 2629.256823] [<ffffffff810e6849>] shrink_zone+0x362/0x464
[ 2629.256827] [<ffffffff810e6c87>] do_try_to_free_pages+0xdd/0x2e3
[ 2629.256830] [<ffffffff810e70eb>] try_to_free_pages+0xaa/0xef
[ 2629.256833] [<ffffffff810deede>] __alloc_pages_nodemask+0x4cc/0x772
[ 2629.256837] [<ffffffff8110c0ea>] alloc_pages_vma+0xec/0xf1
[ 2629.256840] [<ffffffff8111be94>] do_huge_pmd_anonymous_page+0xbf/0x267
[ 2629.256844] [<ffffffff810f24a3>] ? pmd_offset+0x19/0x40
[ 2629.256846] [<ffffffff810f5c7c>] handle_mm_fault+0x15d/0x20f
[ 2629.256850] [<ffffffff8100f298>] ? arch_get_unmapped_area_topdown+0x1c3/0x28f
[ 2629.256853] [<ffffffff814818cc>] do_page_fault+0x33b/0x35d
[ 2629.256856] [<ffffffff810fb089>] ? do_mmap_pgoff+0x29a/0x2f4
[ 2629.256859] [<ffffffff8112dd66>] ? path_put+0x22/0x27
[ 2629.256861] [<ffffffff8147f285>] page_fault+0x25/0x30
They throttle on writeback I/O completion like kswapd too:
[ 2849.098751] [<ffffffff8147d00b>] io_schedule+0x47/0x62
[ 2849.098756] [<ffffffff8121c47b>] get_request_wait+0x10a/0x197
[ 2849.098760] [<ffffffff8106cd77>] ? autoremove_wake_function+0x0/0x3d
[ 2849.098763] [<ffffffff8121cd3c>] __make_request+0x2c8/0x3e0
[ 2849.098767] [<ffffffff81114889>] ? kmem_cache_alloc+0x73/0xeb
[ 2849.098771] [<ffffffff8121bbdf>] generic_make_request+0x2bc/0x336
[ 2849.098774] [<ffffffff8121bd39>] submit_bio+0xe0/0xff
[ 2849.098777] [<ffffffff8114d7a5>] ? bio_alloc_bioset+0x4d/0xc4
[ 2849.098781] [<ffffffff810edf2b>] ? inc_zone_page_state+0x2d/0x2f
[ 2849.098785] [<ffffffff811492ec>] submit_bh+0xe8/0x10e
[ 2849.098788] [<ffffffff8114ba72>] __block_write_full_page+0x1ea/0x2da
[ 2849.098793] [<ffffffffa06e5202>] ? udf_get_block+0x0/0x115 [udf]
[ 2849.098796] [<ffffffff8114a6b8>] ? end_buffer_async_write+0x0/0x12d
[ 2849.098799] [<ffffffff8114a6b8>] ? end_buffer_async_write+0x0/0x12d
[ 2849.098802] [<ffffffffa06e5202>] ? udf_get_block+0x0/0x115 [udf]
[ 2849.098805] [<ffffffff8114bbee>] block_write_full_page_endio+0x8c/0x98
[ 2849.098808] [<ffffffff8114bc0f>] block_write_full_page+0x15/0x17
[ 2849.098811] [<ffffffffa06e2027>] udf_writepage+0x18/0x1a [udf]
[ 2849.098814] [<ffffffff810e44fd>] pageout+0x138/0x255
[ 2849.098817] [<ffffffff810e5ad7>] shrink_page_list+0x279/0x478
[ 2849.098820] [<ffffffff810e60ec>] shrink_inactive_list+0x23c/0x39a
[ 2849.098824] [<ffffffff81481a46>] ? add_preempt_count+0xae/0xb2
[ 2849.098828] [<ffffffff810dfe81>] ? determine_dirtyable_memory+0x1d/0x27
[ 2849.098831] [<ffffffff810e6849>] shrink_zone+0x362/0x464
[ 2849.098834] [<ffffffff810dbdf8>] ? zone_watermark_ok_safe+0xa1/0xae
[ 2849.098837] [<ffffffff810e773f>] kswapd+0x51c/0x89f
I'm unsure if there's any other problem left that can be attributed to
compaction/migrate (especially considering the THP allocations have no
__GFP_REPEAT set and should_continue_reclaim should break the loop if
nr_reclaim is zero, plus compaction_suitable requires not much more
memory to be reclaimed if compared to no-compaction).
I'd suggest to try a few more times with "echo never >
/sys/kernel/mm/transparent_hugepage/enabled" and see if it still makes
a difference.
I doubt udf is as optimal as other fs in optimizing locks and
writebacks but that may not be relevant to this issue (or at least it
most certainly wasn't until now and the same we had so far probably
applied to all fs, from this point things aren't as clear as before if
responsiveness is still worse than without THP). Anther thing that I
find confusing is the udf vs USB stick, I'd expect udf on a usb dvd
not a usbstick flash drive, I'd use vfat or ext4 on a flash drive.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-03-21 20:17 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <bug-31142-10286@https.bugzilla.kernel.org/>
2011-03-15 20:53 ` [Bugme-new] [Bug 31142] New: Large write to USB stick freezes unrelated tasks for a long time Andrew Morton
2011-03-15 22:53 ` Alex Villacís Lasso
2011-03-15 23:19 ` Andrew Morton
2011-03-16 15:25 ` Alex Villacís Lasso
2011-03-16 22:02 ` Andrew Morton
2011-03-17 21:27 ` Alex Villacís Lasso
2011-03-17 21:47 ` Andrew Morton
2011-03-17 22:11 ` Alex Villacís Lasso
2011-03-17 22:25 ` Andrew Morton
2011-03-18 11:13 ` Mel Gorman
2011-03-18 12:26 ` Andrea Arcangeli
2011-03-18 18:05 ` Alex Villacís Lasso
2011-03-19 13:46 ` Mel Gorman
2011-03-19 16:04 ` Alex Villacís Lasso
2011-03-19 23:51 ` Andrea Arcangeli
2011-03-21 9:41 ` Mel Gorman
2011-03-21 13:48 ` Andrea Arcangeli
2011-03-21 15:22 ` Alex Villacís Lasso
2011-03-21 15:36 ` Alex Villacís Lasso
2011-03-21 15:40 ` Andrea Arcangeli
2011-03-21 16:37 ` Mel Gorman
2011-03-21 17:05 ` Alex Villacís Lasso
2011-03-21 20:16 ` Andrea Arcangeli [this message]
2011-03-21 23:35 ` Alex Villacís Lasso
2011-03-22 11:20 ` Mel Gorman
2011-03-22 15:03 ` Andrea Arcangeli
2011-03-22 20:34 ` Alex Villacís Lasso
2011-03-22 21:40 ` Andrea Arcangeli
2011-03-23 0:37 ` Andrea Arcangeli
2011-03-23 16:51 ` Alex Villacís Lasso
2011-04-04 15:37 ` Alex Villacís Lasso
2011-04-08 19:09 ` Andrea Arcangeli
2011-04-08 20:06 ` Alex Villacís Lasso
2011-04-12 16:27 ` Alex Villacís Lasso
2011-04-14 17:25 ` Alex Villacís Lasso
2011-04-14 17:37 ` Andrea Arcangeli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110321201641.GA5698@random.random \
--to=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=avillaci@ceibo.fiec.espol.edu.ec \
--cc=avillaci@fiec.espol.edu.ec \
--cc=bugme-daemon@bugzilla.kernel.org \
--cc=bugzilla-daemon@bugzilla.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).