From: Jan Kara <jack@suse.cz>
To: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Jan Kara <jack@suse.cz>, Fengguang Wu <fengguang.wu@intel.com>,
viro@zeniv.linux.org.uk, hch@lst.de,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Fix queueing work if !bdi_cap_writeback_dirty()
Date: Sun, 16 Sep 2012 23:49:12 +0200 [thread overview]
Message-ID: <20120916214912.GA7503@quack.suse.cz> (raw)
In-Reply-To: <878vccmygy.fsf@devron.myhome.or.jp>
On Sat 15-09-12 00:10:53, OGAWA Hirofumi wrote:
> Jan Kara <jack@suse.cz> writes:
>
> >> If flusher is working, it clears dirty flags of inode. But if those
> >> handers can't flush at the time, we have to do redirty or something to
> >> prevent the reclaim.
> > Well, if this is your only problem then I'd see better options than just
> > disabling flusher thread. If the inability to write inode is rare, then
> > redirtying seems like a reasonable option (despite I agree it's a bit
> > ugly). If the inability to write is common, then you'll probably have to do
> > the dirty inode tracking yourself in some list and expose inodes to VM when
> > they are ready to be written. Or you handle writing of inodes yourself but
> > leave writing of pages on flusher thread...
>
> Basically all data can be data-integrity write like data logging, so it
> would be more than common. And ->writepages() will also ignore WBC_SYNC_NONE.
>
> > Because when you disable flusher thread completely you have to put all the
> > smarts to avoid livelocks, keep fairness among processes, write old data,
> > keep number of dirty pages under control into your filesystem which leads
> > to a lot of duplication.
>
> I'm not sure what you meant though. What is the difference with ignoring
> WBC_SYNC_NONE?
When you completely ignore WB_SYNC_NONE writeback, you'll soon drive the
machine close to dirty limits and processes dirtying pages will get
throttled. Because flusher threads won't be able to write pages - they
do WB_SYNC_NONE writeback when we have too many dirty pages - processes
will be throttled until somebody calls sync(1) or someone writes the data
for some other reason... So I suspect things won't really work as you
expect.
Honza
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR
next prev parent reply other threads:[~2012-09-16 21:49 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-11 18:28 [PATCH] Fix queueing work if !bdi_cap_writeback_dirty() OGAWA Hirofumi
2012-09-12 2:42 ` Fengguang Wu
2012-09-12 8:00 ` OGAWA Hirofumi
2012-09-13 0:33 ` Fengguang Wu
2012-09-13 5:41 ` OGAWA Hirofumi
2012-09-13 6:03 ` Fengguang Wu
2012-09-13 6:31 ` OGAWA Hirofumi
2012-09-13 6:39 ` Fengguang Wu
2012-09-13 7:53 ` OGAWA Hirofumi
2012-09-14 11:13 ` OGAWA Hirofumi
2012-09-14 11:18 ` Fengguang Wu
2012-09-14 11:14 ` Fengguang Wu
2012-09-14 12:12 ` OGAWA Hirofumi
2012-09-14 12:53 ` Fengguang Wu
2012-09-14 13:07 ` OGAWA Hirofumi
2012-09-14 13:33 ` Fengguang Wu
2012-09-14 13:49 ` OGAWA Hirofumi
2012-09-14 13:19 ` Jan Kara
2012-09-14 13:44 ` OGAWA Hirofumi
2012-09-14 14:45 ` Jan Kara
2012-09-14 15:10 ` OGAWA Hirofumi
2012-09-16 21:49 ` Jan Kara [this message]
2012-09-16 23:24 ` OGAWA Hirofumi
2012-09-17 8:48 ` Jan Kara
2012-09-17 9:39 ` OGAWA Hirofumi
2012-09-17 9:56 ` Jan Kara
2012-09-17 10:37 ` OGAWA Hirofumi
2012-09-17 15:54 ` Jan Kara
2012-09-17 16:55 ` OGAWA Hirofumi
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=20120916214912.GA7503@quack.suse.cz \
--to=jack@suse.cz \
--cc=fengguang.wu@intel.com \
--cc=hch@lst.de \
--cc=hirofumi@mail.parknet.co.jp \
--cc=linux-kernel@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.