public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: mru@users.sourceforge.net (Måns Rullgård)
To: linux-kernel@vger.kernel.org
Subject: Re: how to turn off, or to clear read cache?
Date: Wed, 20 Aug 2003 14:30:18 +0200	[thread overview]
Message-ID: <yw1xlltocy05.fsf@users.sourceforge.net> (raw)
In-Reply-To: 3F4360F0.209@gamic.com

Sergey Spiridonov <spiridonov@gamic.com> writes:

> I need to make some performance tests. I need to switch off or to
> clear read cache, so that consequent reading of the same file will
> take the same amount of time.
>
> Is there an easy way to do it, without rebuilding the kernel?

I never found one, so I made this little patch.  It adds a mount
option to the ext3 filesystem that makes it drop the cache when a file
is closed.  Diff is against 2.4.21.  It's just a quick hack that
accomplishes what I needed.  I'm sure there's a better, more generic,
way.

Index: include/linux/ext3_fs.h
===================================================================
RCS file: /home/cvs/linux-2.4/include/linux/ext3_fs.h,v
retrieving revision 1.8
diff -u -r1.8 ext3_fs.h
--- include/linux/ext3_fs.h	1 Apr 2003 21:09:23 -0000	1.8
+++ include/linux/ext3_fs.h	17 Jun 2003 09:10:56 -0000
@@ -339,6 +339,7 @@
   #define EXT3_MOUNT_WRITEBACK_DATA	0x0C00	/* No data ordering */
 #define EXT3_MOUNT_UPDATE_JOURNAL	0x1000	/* Update the journal format */
 #define EXT3_MOUNT_NO_UID32		0x2000  /* Disable 32-bit UIDs */
+#define EXT3_MOUNT_NOCACHE		0x4000  /* Free cached blocks on close */
 
 /* Compatibility, for having both ext2_fs.h and ext3_fs.h included at once */
 #ifndef _LINUX_EXT2_FS_H
Index: fs/ext3/file.c
===================================================================
RCS file: /home/cvs/linux-2.4/fs/ext3/file.c,v
retrieving revision 1.4
diff -u -r1.4 file.c
--- fs/ext3/file.c	28 Aug 2002 21:11:16 -0000	1.4
+++ fs/ext3/file.c	17 Jun 2003 09:10:57 -0000
@@ -35,6 +35,10 @@
 {
 	if (filp->f_mode & FMODE_WRITE)
 		ext3_discard_prealloc (inode);
+	if (inode->i_sb->u.ext3_sb.s_mount_opt & EXT3_MOUNT_NOCACHE){
+		write_inode_now(inode, 1);
+		invalidate_inode_pages(inode);
+	}
 	return 0;
 }
 
Index: fs/ext3/super.c
===================================================================
RCS file: /home/cvs/linux-2.4/fs/ext3/super.c,v
retrieving revision 1.10
diff -u -r1.10 super.c
--- fs/ext3/super.c	28 Apr 2003 21:14:51 -0000	1.10
+++ fs/ext3/super.c	17 Jun 2003 09:10:59 -0000
@@ -654,6 +654,8 @@
 			if (want_numeric(value, "commit", &v))
 				return 0;
 			sbi->s_commit_interval = (HZ * v);
+		} else if (!strcmp (this_char, "nocache")){
+			set_opt (*mount_options, NOCACHE);
 		} else {
 			printk (KERN_ERR 
 				"EXT3-fs: Unrecognized mount option %s\n",


-- 
Måns Rullgård
mru@users.sf.net


  reply	other threads:[~2003-08-20 12:30 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-20 11:52 how to turn off, or to clear read cache? Sergey Spiridonov
2003-08-20 12:30 ` Måns Rullgård [this message]
2003-08-20 13:11 ` Denis Vlasenko
2003-08-20 14:30   ` Sergey Spiridonov
2003-08-20 22:46   ` Jamie Lokier
2003-08-20 22:52     ` Mike Fedyk
  -- strict thread matches above, loose matches on Subject: below --
2003-08-20 13:22 John Bradford
2003-08-20 13:23 ` Sergey Spiridonov
2003-08-20 13:31   ` Måns Rullgård
2003-08-20 16:49     ` Luciano Miguel Ferreira Rocha
2003-08-20 16:57       ` Måns Rullgård
2003-08-20 17:17         ` Jeff Garzik
2003-08-20 17:28           ` Måns Rullgård
     [not found] <mzNF.3z3.47@gated-at.bofh.it>
     [not found] ` <mB2M.4Jv.35@gated-at.bofh.it>
     [not found]   ` <mCi4.5Kq.3@gated-at.bofh.it>
2003-08-21 10:01     ` Ihar 'Philips' Filipau

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=yw1xlltocy05.fsf@users.sourceforge.net \
    --to=mru@users.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /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