linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: Johannes Weiner <hannes@cmpxchg.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	oliverml1@oli1170.net, bugzilla-daemon@bugzilla.kernel.org,
	linux-mm@kvack.org,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Maxim Patlasov <mpatlasov@parallels.com>, Jan Kara <jack@suse.cz>,
	Fengguang Wu <fengguang.wu@intel.com>
Subject: Re: [Bug 75101] New: [bisected] s2disk / hibernate blocks on "Saving 506031 image data pages () ..."
Date: Mon, 5 May 2014 18:10:53 +0200	[thread overview]
Message-ID: <20140505161053.GF23927@quack.suse.cz> (raw)
In-Reply-To: <20140505153541.GB19914@cmpxchg.org>

  Hello,

On Mon 05-05-14 11:35:41, Johannes Weiner wrote:
> On Tue, Apr 29, 2014 at 03:24:37PM -0700, Andrew Morton wrote:
> > (switched to email.  Please respond via emailed reply-to-all, not via the
> > bugzilla web interface).
> > 
> > On Tue, 29 Apr 2014 20:13:44 +0000 bugzilla-daemon@bugzilla.kernel.org wrote:
> > 
> > > https://bugzilla.kernel.org/show_bug.cgi?id=75101
> > > 
> > >             Bug ID: 75101
> > >            Summary: [bisected] s2disk / hibernate blocks on "Saving 506031
> > >                     image data pages () ..."
> > >            Product: Memory Management
> > >            Version: 2.5
> > >     Kernel Version: v3.14
> > >           Hardware: All
> > >                 OS: Linux
> > >               Tree: Mainline
> > >             Status: NEW
> > >           Severity: normal
> > >           Priority: P1
> > >          Component: Other
> > >           Assignee: akpm@linux-foundation.org
> > >           Reporter: oliverml1@oli1170.net
> > >         Regression: No
> > > 
> > > Created attachment 134271
> > >   --> https://bugzilla.kernel.org/attachment.cgi?id=134271&action=edit
> > > Full console trace with various SysRq outputs
> > > 
> > > Since v3.14 under normal desktop usage my s2disk/hibernate often blocks on the
> > > saving of the image data ("Saving 506031 image data pages () ...").
> > 
> > A means to reproduce as well as a bisection result.  Nice!  Thanks.
> > 
> > Johannes, could you please take a look?
> > 
> > > With following test I can reproduce the problem reliably:
> > > ---
> > > 0) Boot
> > > 
> > > 1) Fill ram with 2GiB (+50% in my case)
> > > 
> > > mount -t tmpfs tmpfs /media/test/
> > > dd if=/dev/zero of=/media/test/test0.bin bs=1k count=$[1024*1024]
> > > dd if=/dev/zero of=/media/test/test1.bin bs=1k count=$[1024*1024]
> > > 
> > > 2) Do s2disk 
> > > 
> > > s2disk
> > > 
> > > ---
> > > s2disk: Unable to switch virtual terminals, using the current console.
> > > s2disk: Snapshotting system
> > > s2disk: System snapshot ready. Preparing to write
> > > s2disk: Image size: 2024124 kilobytes
> > > s2disk: Free swap: 3791208 kilobytes
> > > s2disk: Saving 506031 image data pages (press backspace to abort) ...   0%
> > > 
> > > #Problem>: ... there is stays and blocks. SysRq still responds, so that I could
> > > trigger various debug outputs.
> 
> According to your dmesg s2disk is stuck in balance_dirty_pages():
> 
> [  215.645240] s2disk          D ffff88011fd93100     0  3323   3261 0x00000000
> [  215.645240]  ffff8801196d4110 0000000000000082 0000000000013100 ffff8801196d4110
> [  215.645240]  ffff8800365cdfd8 ffff880119ed9190 00000000ffffc16c ffff8800365cdbe8
> [  215.645240]  0000000000000032 0000000000000032 ffff8801196d4110 0000000000000000
> [  215.645240] Call Trace:
> [  215.645240]  [<ffffffff8162fdce>] ? schedule_timeout+0xde/0xff
> [  215.645240]  [<ffffffff81041be1>] ? ftrace_raw_output_tick_stop+0x55/0x55
> [  215.645240]  [<ffffffff81630987>] ? io_schedule_timeout+0x5d/0x7e
> [  215.645240]  [<ffffffff810cb035>] ? balance_dirty_pages_ratelimited+0x588/0x747
> [  215.645240]  [<ffffffff812d0795>] ? radix_tree_tag_set+0x69/0xc4
> [  215.645240]  [<ffffffff810c244e>] ? generic_file_buffered_write+0x1a8/0x21c
> [  215.645240]  [<ffffffff810c351e>] ? __generic_file_aio_write+0x1c7/0x1fe
> [  215.645240]  [<ffffffff81134ab5>] ? blkdev_aio_write+0x44/0x79
> [  215.645240]  [<ffffffff8110c02a>] ? do_sync_write+0x56/0x76
> [  215.645240]  [<ffffffff8110c33c>] ? vfs_write+0xa1/0xfb
> [  215.645240]  [<ffffffff8110ca08>] ? SyS_write+0x41/0x74
> [  215.645240]  [<ffffffff81637622>] ? system_call_fastpath+0x16/0x1b
> 
> but I don't see a flusher thread anywhere.
> 
> What the bisected change does is allow the effective dirty threshold
> to drop fairly low, because anonymous pages are no longer considered
> dirtyable, and your usecase has particularly low free + cache pages:
> 
> [  196.375988] active_anon:328150 inactive_anon:118571 isolated_anon:0
> [  196.375988]  active_file:1658 inactive_file:1823 isolated_file:0
> [  196.375988]  unevictable:867 dirty:616 writeback:0 unstable:0
> [  196.375988]  free:32320 slab_reclaimable:5129 slab_unreclaimable:5080
> [  196.375988]  mapped:2684 shmem:424844 pagetables:1528 bounce:0
> [  196.375988]  free_cma:0
> 
> Ignoring free pages due to dirty_balance_reserve, inactive+active file
> yields 3481 dirtyable pages, which sets the global limits to 174 pages
> background and 348 pages foreground with the default configuration.
> It's low, but not 0.
  OK, so we are over the dirty_limit.

> So why is the dirtier throttled to starvation when the background flusher
> is not even running?  Shouldn't they be looking at the same numbers and
> behave inversely?
  These days there isn't a background flusher thread but a workqueue which
handles the flushing work. But still you should see that in a process list
like "flush-$dev". Can you check whether balance_dirty_pages() properly
calls bdi_start_background_writeback() and whether wb_do_writeback() gets
to run (there are tracepoints in there)?  Also can you have a look in
/sys/kernel/debug/bdi/<dev>/stats? What is the estimated bandwith?

								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>

  reply	other threads:[~2014-05-05 16:10 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-75101-27@https.bugzilla.kernel.org/>
2014-04-29 22:24 ` [Bug 75101] New: [bisected] s2disk / hibernate blocks on "Saving 506031 image data pages () ..." Andrew Morton
2014-05-05 15:35   ` Johannes Weiner
2014-05-05 16:10     ` Jan Kara [this message]
2014-05-05 21:00       ` Oliver Winker
2014-05-05 23:33 Johannes Weiner
2014-05-05 23:45 ` Rafael J. Wysocki
2014-06-12 22:02   ` Johannes Weiner
2014-06-12 23:50     ` Rafael J. Wysocki
2014-06-13  4:55       ` Johannes Weiner
2014-06-16 16:29         ` Rafael J. Wysocki
2019-04-02 23:25           ` Andrew Morton
2019-04-03  3:54             ` Matheus Fillipe
2019-04-03  8:23               ` Rainer Fiebig
2019-04-03  8:34             ` Rainer Fiebig
2019-04-03  9:34             ` Jan Kara
2019-04-03 10:04               ` Rainer Fiebig
2019-04-03 16:59                 ` Matheus Fillipe
2019-04-03 17:55                   ` Rainer Fiebig
2019-04-03 19:08                     ` Matheus Fillipe
     [not found]                     ` <CAFWuBvfxS0S6me_pneXmNzKwObSRUOg08_7=YToAoBg53UtPKg@mail.gmail.com>
2019-04-04 10:48                       ` Rainer Fiebig
2019-04-04 16:04                         ` matheus
2019-04-03 21:43               ` Rafael J. Wysocki

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=20140505161053.GF23927@quack.suse.cz \
    --to=jack@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=bugzilla-daemon@bugzilla.kernel.org \
    --cc=fengguang.wu@intel.com \
    --cc=hannes@cmpxchg.org \
    --cc=linux-mm@kvack.org \
    --cc=mpatlasov@parallels.com \
    --cc=oliverml1@oli1170.net \
    --cc=rafael.j.wysocki@intel.com \
    /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).