From: Andrea Righi <andrea@betterlinux.com>
To: Matthew Wilcox <matthew@wil.cx>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Dave Chinner <david@fromorbit.com>,
Mike Frysinger <vapier@gentoo.org>,
Al Viro <viro@zeniv.linux.org.uk>, Arnd Bergmann <arnd@arndb.de>,
linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] fadvise: introduce POSIX_FADV_DONTNEED_FS
Date: Thu, 28 Apr 2011 11:29:01 +0200 [thread overview]
Message-ID: <20110428092901.GA2517@linux.develer.com> (raw)
In-Reply-To: <20110427183308.GA16716@parisc-linux.org>
On Wed, Apr 27, 2011 at 12:33:08PM -0600, Matthew Wilcox wrote:
> On Wed, Apr 27, 2011 at 08:13:47PM +0200, Andrea Righi wrote:
> > @@ -127,6 +128,12 @@ SYSCALL_DEFINE(fadvise64_64)(int fd, loff_t offset, loff_t len, int advice)
> > invalidate_mapping_pages(mapping, start_index,
> > end_index);
> > break;
> > + case POSIX_FADV_DONTNEED_FS:
> > + if (capable(CAP_SYS_ADMIN))
> > + drop_pagecache_sb(file->f_dentry->d_sb, NULL);
> > + else
> > + ret = -EPERM;
> > + break;
> > default:
> > ret = -EINVAL;
> > }
>
> Mmm ... what if I open /dev/sdxyz and call fadvise() on it? I think
> you end up flushing /dev's page cache entries, instead of the filesystem
> which is on /dev/sdxyz.
>
> If I understand correctly, you want mapping->host->i_sb instead of
> file->f_dentry->d_sb.
I did some tests, but I don't get the expected behaviour. In all cases
both if I use mapping->host->i_sb or file->f_dentry->d_sb when I call
fadvise() on any block device all the blockdev pages are dropped
("Buffers" from /proc/meminfo), but page cache pages are not touched:
# df -hT /
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 29G 20G 7.4G 73% /
# grep "^Cached\|Buffers" /proc/meminfo
Buffers: 79772 kB
Cached: 32440 kB
# sudo drop-pagecache /dev/sda1
# grep "^Cached\|Buffers" /proc/meminfo
Buffers: 228 kB
Cached: 32440 kB
# sudo drop-pagecache /
# grep "^Cached\|Buffers" /proc/meminfo
Buffers: 228 kB
Cached: 4884 kB
Thanks,
-Andrea
next prev parent reply other threads:[~2011-04-28 9:29 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-27 18:13 [PATCH v2] fadvise: introduce POSIX_FADV_DONTNEED_FS Andrea Righi
2011-04-27 18:13 ` Andrea Righi
[not found] ` <1303928027-5100-1-git-send-email-andrea-oIIqvOZpAevzfdHfmsDf5w@public.gmane.org>
2011-04-27 18:25 ` Mike Frysinger
2011-04-27 18:25 ` Mike Frysinger
2011-04-28 9:35 ` Andrea Righi
2011-04-27 18:33 ` Matthew Wilcox
2011-04-27 18:33 ` Matthew Wilcox
[not found] ` <20110427183308.GA16716-6jwH94ZQLHl74goWV3ctuw@public.gmane.org>
2011-04-27 18:39 ` Mike Frysinger
2011-04-27 18:39 ` Mike Frysinger
2011-04-27 18:47 ` Matthew Wilcox
[not found] ` <20110427184756.GB16716-6jwH94ZQLHl74goWV3ctuw@public.gmane.org>
2011-04-27 18:49 ` Mike Frysinger
2011-04-27 18:49 ` Mike Frysinger
2011-04-28 9:29 ` Andrea Righi [this message]
2011-05-04 21:44 ` Andrew Morton
2011-05-04 21:44 ` Andrew Morton
[not found] ` <20110504144411.7f32c00c.akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
2011-05-04 22:09 ` Andrea Righi
2011-05-04 22:09 ` Andrea Righi
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=20110428092901.GA2517@linux.develer.com \
--to=andrea@betterlinux.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=david@fromorbit.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew@wil.cx \
--cc=vapier@gentoo.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.