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: Fri, 14 Sep 2012 16:45:43 +0200 [thread overview]
Message-ID: <20120914144543.GB4952@quack.suse.cz> (raw)
In-Reply-To: <87ipbgn2gz.fsf@devron.myhome.or.jp>
On Fri 14-09-12 22:44:28, OGAWA Hirofumi wrote:
> Jan Kara <jack@suse.cz> writes:
>
> >> page reclaim and fsync path have FS handler. So, FS can control those.
> >>
> >> The modern FS have to control to flush carefully. Many FSes are already
> >> ignoring if wbc->sync_mode != WB_SYNC_ALL (e.g. ext3_write_inode,
> >> nilfs_writepages), and have own FS task to flush.
> > Out of curiosity, what exactly do you need to control in your filesystem
> > that makes flusher thread unusable for you? You still have a lot of
> > flexibility with ->write_inode() and ->writepages() callbacks...
>
> 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...
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.
Honza
--
Jan Kara <jack@suse.cz>
SUSE Labs, CR
next prev parent reply other threads:[~2012-09-14 14:45 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-11 18:28 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 [this message]
2012-09-14 15:10 ` OGAWA Hirofumi
2012-09-16 21:49 ` Jan Kara
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=20120914144543.GB4952@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®