From: Jan Kara <jack@suse.cz>
To: Chris Mason <chris.mason@fusionio.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
Steven Rostedt <srostedt@redhat.com>,
"tytso@mit.edu" <tytso@mit.edu>, Jan Kara <jack@suse.cz>
Subject: Re: compaction vs data=ordered on ext34
Date: Mon, 7 Jan 2013 20:14:30 +0100 [thread overview]
Message-ID: <20130107191430.GC13659@quack.suse.cz> (raw)
In-Reply-To: <20130104132305.GG14537@shiny>
Hi,
On Fri 04-01-13 08:23:05, Chris Mason wrote:
> Steve recently hit very long stalls in firefox, and was able to snag
> this sysrq-w
>
> [223349.032831] firefox-bin D 0000000000000000 0 5798 5797 0x00000004
> [223349.033208] ffff8801abb69798 0000000000000086 ffff8801abb696d8 ffff8801abb69fd8
> [223349.033622] 0000000000004000 ffff8801abb69fd8 ffffffff81813420 ffff880209d7e180
> [223349.034053] 000000000000003c ffff88023f02cb00 ffff88023f01d080 ffff88023f02cac0
> [223349.034472] Call Trace:
> [223349.034609] [<ffffffff8145abbc>] ? cache_flusharray+0x8f/0xb9
> [223349.034909] [<ffffffff81110b56>] ? free_pcppages_bulk+0x406/0x450
> [223349.035228] [<ffffffff81191aa0>] ? __wait_on_buffer+0x30/0x30
> [223349.035530] [<ffffffff8145f41f>] ? io_schedule+0x8f/0xd0
> [223349.035812] [<ffffffff81191aae>] ? sleep_on_buffer+0xe/0x20
> [223349.036103] [<ffffffff8145d72a>] ? __wait_on_bit_lock+0x5a/0xc0
> [223349.036432] [<ffffffff8111201e>] ? free_hot_cold_page_list+0x5e/0x100
> [223349.036769] [<ffffffff81191aa0>] ? __wait_on_buffer+0x30/0x30
> [223349.037073] [<ffffffff8145d80c>] ? out_of_line_wait_on_bit_lock+0x7c/0x90
> [223349.037427] [<ffffffff81067300>] ? autoremove_wake_function+0x40/0x40
> [223349.037767] [<ffffffff81155c5e>] ? buffer_migrate_lock_buffers+0x7e/0xb0
> [223349.038116] [<ffffffff81156761>] ? buffer_migrate_page+0x61/0x160
> [223349.038437] [<ffffffff81156536>] ? move_to_new_page+0x96/0x260
> [223349.038749] [<ffffffff81156c11>] ? migrate_pages+0x3b1/0x4b0
> [223349.039047] [<ffffffff8112b7b0>] ? compact_checklock_irqsave.isra.14+0x100/0x100
> [223349.039433] [<ffffffff8112c48f>] ? compact_zone+0x17f/0x430
> [223349.039729] [<ffffffff8135c3eb>] ? __kmalloc_reserve+0x3b/0xa0
> [223349.040036] [<ffffffff8112c9f7>] ? compact_zone_order+0x87/0xd0
> [223349.040349] [<ffffffff8112cb11>] ? try_to_compact_pages+0xd1/0x100
> [223349.040674] [<ffffffff8145a6e3>] ? __alloc_pages_direct_compact+0xc3/0x1fa
> [223349.041034] [<ffffffff81111468>] ? __alloc_pages_nodemask+0x7b8/0xa00
> [223349.041368] [<ffffffff8114d003>] ? alloc_pages_vma+0xb3/0x1d0
> [223349.041673] [<ffffffff8115ab28>] ? do_huge_pmd_anonymous_page+0x138/0x300
> [223349.042030] [<ffffffff814634e8>] ? do_page_fault+0x198/0x510
> [223349.042331] [<ffffffff81125b36>] ? vm_mmap_pgoff+0x96/0xb0
> [223349.042640] [<ffffffff8146095f>] ? page_fault+0x1f/0x30
>
> This shows THP -> compaction -> buffer_migrate_page then waiting for a
> buffer to unlock. He was doing backups on a USB drive at the time,
> formatted w/ext3.
>
> Reading the compaction code, it'll jump over pages marked as writeback,
> but happily sit on locked buffer heads. If I'm reading the ext3 code
> correctly, it still uses submit_bh directly on data=ordered writes,
> without the working on the page bits.
Yes, ext3 will do IO on buffers without setting PageWriteback. But
buffer_migrate_lock_buffers() seems to wait for buffers only in sync mode?
And in that mode we wait for PageWriteback as well. So I don't see a
difference?
Maybe there could be some difference that in async mode we isolate pages we
*think* could be migrated but later the migration fails due to buffer locks
(as pages are selected only based on PageWriteback). So the whole process
can be considerably less efficient for ext3 and we get into troubles of
sync mode earlier?
Honza
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR
--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2013-01-07 19:14 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-04 13:23 compaction vs data=ordered on ext34 Chris Mason
2013-01-07 19:14 ` Jan Kara [this message]
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=20130107191430.GC13659@quack.suse.cz \
--to=jack@suse.cz \
--cc=chris.mason@fusionio.com \
--cc=linux-mm@kvack.org \
--cc=srostedt@redhat.com \
--cc=tytso@mit.edu \
/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).