From: Theodore Ts'o <tytso@mit.edu>
To: Jan Kara <jack@suse.cz>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>
Subject: Re: Lazytime feature bugs
Date: Thu, 26 Feb 2015 14:27:35 -0500 [thread overview]
Message-ID: <20150226192735.GB17174@thunk.org> (raw)
In-Reply-To: <20150226143828.GA21485@quack.suse.cz>
On Thu, Feb 26, 2015 at 03:38:28PM +0100, Jan Kara wrote:
> But you wrote you'll reset i_dirty_time_when to "now" when queueing into
> b_dirty_time. Thus frequently dirtied inodes will just travel back and
> forth between b_dirty and b_dirty_time lists and i_dirty_time will be
> continuously reset. And you never end up writing it. That's why I suggested
> to reset i_dirted_when instead (since it would be unused in b_dirty_time
> list anyway).
Inodes will never get transfered onto the b_dirty_time list if they
also have dirty pages. So if the inode is constantly getting dirtied,
the pages *will* get written out, and when they do, we'll also check
to see if i_dirty_time_when is too old, and also updated the
timestamp.
Basically the I_DIRTY_TIME flag is the "weakest" of all of the dirty
flags. If the inode is dirty, it takes precedence, and writing out
the inode will include updating the timestamps. If the inode's pages
are dirty, it takes precedence over I_DIRTY_TIME, so we worry about
getting the pages written out before we even think about considering
whether or not the inode should go on the b_dirty_time list.
So I don't see how inodes would be shuttling back and forth between
b_io and b_dirty_time.
- Ted
next prev parent reply other threads:[~2015-02-26 19:27 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-18 13:19 Lazytime feature bugs Jan Kara
2015-02-24 18:31 ` Jan Kara
2015-02-24 18:58 ` Linus Torvalds
2015-02-25 14:52 ` Theodore Ts'o
2015-02-25 16:25 ` Jan Kara
2015-02-26 4:33 ` Theodore Ts'o
2015-02-26 8:34 ` Jan Kara
2015-02-26 13:45 ` Theodore Ts'o
2015-02-26 14:38 ` Jan Kara
2015-02-26 19:27 ` Theodore Ts'o [this message]
2015-03-02 8:29 ` Jan Kara
2015-03-07 5:34 ` [PATCH] fs: make sure the timestamps for lazytime inodes eventually get written Theodore Ts'o
2015-03-08 10:06 ` Jan Kara
2015-03-08 19:06 ` Theodore Ts'o
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=20150226192735.GB17174@thunk.org \
--to=tytso@mit.edu \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=torvalds@linux-foundation.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.