linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andreas Dilger <adilger@dilger.ca>
To: Martin Tegtmeier <martin.tegtmeier@gmail.com>
Cc: linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk,
	linux-mm@kvack.org
Subject: Re: [RFC] [PATCH] drop_caches: add syslog entry
Date: Wed, 25 May 2011 13:54:00 -0600	[thread overview]
Message-ID: <B3BAB9C6-076A-43BE-9143-AE182DADB478@dilger.ca> (raw)
In-Reply-To: <BANLkTinKonvpASu_G=Gr8C56WKvFSH5QAA@mail.gmail.com>

On May 24, 2011, at 08:16, Martin Tegtmeier wrote:
> currently dropping the file system cache ("echo 1 >
> /proc/sys/vm/drop_caches") doesn't leave any trace. However dropping
> the fs cache can severely impact system behaviour and application
> response times. Therefore I suggest to write a syslog entry if the
> entire inode page cache is scrapped.
> Since it is not an easy task to calculate the size of the droppable
> filesystem cache I also suggest to add the number of dropped pages to
> the syslog entry. This can be accomplished by saving the return value
> of invalidate_mapping_pages().
> 
> The number of dropped pages is an important measure for capacity
> planning. For the deployment of new SAP application instances we
> would like to know the amount of memory that was freed from
> fs caches.

I'm hugely in favour of this, because we don't need syslog to be an
auditing mechanism for userspace.

However, if something like this goes into the kernel it would probably
make a lot more sense to print out the values on a per-filesystem
basis, if any pages are dropped from a particular filesystem, so one
can see which filesystem was using the most cache.

> drop_caches.c |    9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
> 
> 
> commit b2219e84647bdf64fd6e7f9c5260c1e6bed24d58
> Author: Martin Tegtmeier <martin.tegtmeier@gmail.com>
> Date:   Tue May 24 15:24:20 2011 +0200
> 
>    drop_caches: add syslog entry
> 
>    Dropping the entire file system cache (inode cache) can severely
> influence system behaviour
>    yet currently dropping the file system cache is NOT traceable.
>    This patch adds an entry to /var/log/messages with a time stamp
> and the number of dropped pages.
> 
> 
>    Signed-off-by: Martin Tegtmeier <martin.tegtmeier@gmail.com>
> 
> diff --git a/fs/drop_caches.c b/fs/drop_caches.c
> index 98b77c8..f2e4dc4 100644
> --- a/fs/drop_caches.c
> +++ b/fs/drop_caches.c
> @@ -12,6 +12,7 @@
> 
> /* A global variable is a bit ugly, but it keeps the code simple */
> int sysctl_drop_caches;
> +unsigned long pages_dropped;
> 
> static void drop_pagecache_sb(struct super_block *sb, void *unused)
> {
> @@ -28,7 +29,7 @@ static void drop_pagecache_sb(struct super_block
> *sb, void *unused)
> 		__iget(inode);
> 		spin_unlock(&inode->i_lock);
> 		spin_unlock(&inode_sb_list_lock);
> -		invalidate_mapping_pages(inode->i_mapping, 0, -1);
> +		pages_dropped += invalidate_mapping_pages(inode->i_mapping, 0, -1);
> 		iput(toput_inode);
> 		toput_inode = inode;
> 		spin_lock(&inode_sb_list_lock);
> @@ -55,8 +56,12 @@ int drop_caches_sysctl_handler(ctl_table *table, int write,
> 	if (ret)
> 		return ret;
> 	if (write) {
> -		if (sysctl_drop_caches & 1)
> +		if (sysctl_drop_caches & 1) {
> +			pages_dropped = 0;
> 			iterate_supers(drop_pagecache_sb, NULL);
> +			printk(KERN_INFO "drop_caches: %lu pages dropped from inode cache\n",
> +				pages_dropped);
> +		}
> 		if (sysctl_drop_caches & 2)
> 			drop_slab();
> 	}
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


Cheers, Andreas





--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

      reply	other threads:[~2011-05-25 19:54 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-24 14:16 Martin Tegtmeier
2011-05-25 19:54 ` Andreas Dilger [this message]

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=B3BAB9C6-076A-43BE-9143-AE182DADB478@dilger.ca \
    --to=adilger@dilger.ca \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=martin.tegtmeier@gmail.com \
    --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