From: Dave Hansen <dave.hansen@intel.com>
To: Andreas Dilger <adilger@dilger.ca>
Cc: Li Wang <liwang@ubuntukylin.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Cong Wang <xiyou.wangcong@gmail.com>,
Zefan Li <lizefan@huawei.com>, Matthew Wilcox <matthew@wil.cx>
Subject: Re: [PATCH 0/3] Fadvise: Directory level page cache cleaning support
Date: Mon, 30 Dec 2013 13:33:37 -0800 [thread overview]
Message-ID: <52C1E6B1.4010402@intel.com> (raw)
In-Reply-To: <FFE7C704-791E-4B73-9251-EFB9135AB254@dilger.ca>
On 12/30/2013 11:40 AM, Andreas Dilger wrote:
> On Dec 30, 2013, at 12:18, Dave Hansen <dave.hansen@intel.com> wrote:
>> Why is this necessary to do in the kernel? Why not leave it to
>> userspace to walk the filesystem(s)?
>
> I would suspect that trying to do it in userspace would be quite bad. It would require traversing the whole directory tree to issue cache flushed for each subdirectory, but it doesn't know when to stop traversal. That would mean the "cache flush" would turn into "cache pollute" and cause a lot of disk IO for subdirectories not in cache to begin with.
That makes sense for dentries at least and is a pretty good reason.
Probably good enough to to include some text in the patch description.
;) Perhaps: "We need this interface because we have no way of
determining what is in the dcache from userspace, and we do not want
userspace to pollute the dcache going and looking for page cache to evict."
One other thing that bothers me: POSIX_FADV_DONTNEED on a directory
seems like it should do something with the _directory_. It should undo
the kernel's caching that happens as a result of readdir().
Should this also be trying to drop the dentry/inode entries like "echo 2
> .../drop_caches" does?
--
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>
next prev parent reply other threads:[~2013-12-30 21:33 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-30 13:45 [PATCH 0/3] Fadvise: Directory level page cache cleaning support Li Wang
2013-12-30 13:45 ` [PATCH 1/3] VFS: Add the declaration of shrink_pagecache_parent Li Wang
2013-12-30 13:45 ` [PATCH 2/3] Add shrink_pagecache_parent Li Wang
2014-01-02 23:55 ` Andrew Morton
2014-01-06 13:30 ` Dave Chinner
2014-01-08 2:06 ` Li Wang
2014-01-15 0:22 ` Dave Chinner
2013-12-30 13:45 ` [PATCH 3/3] Fadvise: Add the ability for directory level page cache cleaning Li Wang
2013-12-30 14:57 ` [PATCH 0/3] Fadvise: Directory level page cache cleaning support Matthew Wilcox
2013-12-30 19:18 ` Dave Hansen
2013-12-30 19:40 ` Andreas Dilger
2013-12-30 21:33 ` Dave Hansen [this message]
2014-01-02 12:44 ` Li Wang
2014-01-02 18:35 ` Dave Hansen
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=52C1E6B1.4010402@intel.com \
--to=dave.hansen@intel.com \
--cc=adilger@dilger.ca \
--cc=akpm@linux-foundation.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=liwang@ubuntukylin.com \
--cc=lizefan@huawei.com \
--cc=matthew@wil.cx \
--cc=viro@zeniv.linux.org.uk \
--cc=xiyou.wangcong@gmail.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).