linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
To: linux-mm <linux-mm@kvack.org>
Subject: [RFC:PATCH 002/012] Allow file systems to specify whether to store file tails
Date: Thu, 24 May 2007 08:11:41 -0400	[thread overview]
Message-ID: <20070524121141.13533.97864.sendpatchset@kleikamp.austin.ibm.com> (raw)
In-Reply-To: <20070524121130.13533.32563.sendpatchset@kleikamp.austin.ibm.com>

Allow file systems to specify whether to enable page cache tails

This allows us to test and enable each file system independently.  It also
gives the file system the flexibility to have a mount flag enable or disable
page cache tails.

Initially, I am only testing on ext4 & jfs, so as not to damage my root file
system (ext3).

Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
---

 fs/ext4/super.c    |    4 ++++
 fs/jfs/super.c     |    3 +++
 include/linux/fs.h |    2 ++
 3 files changed, 9 insertions(+)

diff -Nurp linux001/fs/ext4/super.c linux002/fs/ext4/super.c
--- linux001/fs/ext4/super.c	2007-05-21 15:15:33.000000000 -0500
+++ linux002/fs/ext4/super.c	2007-05-23 22:53:11.000000000 -0500
@@ -1548,6 +1548,10 @@ static int ext4_fill_super (struct super
 
 	sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
 		((sbi->s_mount_opt & EXT4_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0);
+#ifdef CONFIG_VM_FILE_TAILS
+	/* ToDo: Make this a mount option */
+	sb->s_flags |= MS_FILE_TAIL;
+#endif
 
 	if (le32_to_cpu(es->s_rev_level) == EXT4_GOOD_OLD_REV &&
 	    (EXT4_HAS_COMPAT_FEATURE(sb, ~0U) ||
diff -Nurp linux001/fs/jfs/super.c linux002/fs/jfs/super.c
--- linux001/fs/jfs/super.c	2007-05-21 15:15:34.000000000 -0500
+++ linux002/fs/jfs/super.c	2007-05-23 22:53:11.000000000 -0500
@@ -439,6 +439,9 @@ static int jfs_fill_super(struct super_b
 #ifdef CONFIG_JFS_POSIX_ACL
 	sb->s_flags |= MS_POSIXACL;
 #endif
+#ifdef CONFIG_VM_FILE_TAILS
+	sb->s_flags |= MS_FILE_TAIL;
+#endif
 
 	if (newLVSize) {
 		printk(KERN_ERR "resize option for remount only\n");
diff -Nurp linux001/include/linux/fs.h linux002/include/linux/fs.h
--- linux001/include/linux/fs.h	2007-05-21 15:15:43.000000000 -0500
+++ linux002/include/linux/fs.h	2007-05-23 22:53:11.000000000 -0500
@@ -123,6 +123,7 @@ extern int dir_notify_enable;
 #define MS_SLAVE	(1<<19)	/* change to slave */
 #define MS_SHARED	(1<<20)	/* change to shared */
 #define MS_RELATIME	(1<<21)	/* Update atime relative to mtime/ctime. */
+#define MS_FILE_TAIL	(1<<22)	/* Store file tail efficiently in page cache */
 #define MS_ACTIVE	(1<<30)
 #define MS_NOUSER	(1<<31)
 
@@ -182,6 +183,7 @@ extern int dir_notify_enable;
 #define IS_NOCMTIME(inode)	((inode)->i_flags & S_NOCMTIME)
 #define IS_SWAPFILE(inode)	((inode)->i_flags & S_SWAPFILE)
 #define IS_PRIVATE(inode)	((inode)->i_flags & S_PRIVATE)
+#define IS_FILE_TAIL_CAPABLE(inode)	__IS_FLG(inode, MS_FILE_TAIL)
 
 /* the read-only stuff doesn't really belong here, but any other place is
    probably as bad and I don't want to create yet another include file. */

-- 
David Kleikamp
IBM Linux Technology Center

--
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>

  parent reply	other threads:[~2007-05-24 11:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-24 12:11 [RFC:PATCH 000/012] VM Page Tails Dave Kleikamp
2007-05-24 12:11 ` [RFC:PATCH 001/012] Make iommu_map_sg deal with less-than-page-aligned data Dave Kleikamp
2007-05-24 12:11 ` Dave Kleikamp [this message]
2007-05-24 12:11 ` [RFC:PATCH 003/012] Add tail to address space and define PG_pagetail page flag Dave Kleikamp
2007-05-24 12:11 ` [RFC:PATCH 004/012] Replace PAGE_CACHE_SIZE with page_data_size() Dave Kleikamp
2007-05-24 12:11 ` [RFC:PATCH 005/012] Base file tail function Dave Kleikamp
2007-05-24 12:12 ` [RFC:PATCH 006/012] Modify lowmem_page_address() & page_to_phys() to special case tail page Dave Kleikamp
2007-05-24 12:12 ` [RFC:PATCH 007/012] Avoid page_to_pfn() on " Dave Kleikamp
2007-05-24 12:12 ` [RFC:PATCH 008/012] bh_offset needs to take page_address into consideration Dave Kleikamp
2007-05-24 12:12 ` [RFC:PATCH 009/012] Wrap i_size_write Dave Kleikamp
2007-05-24 12:12 ` [RFC:PATCH 010/012] unpack tail page to avoid memory mapping Dave Kleikamp
2007-05-24 12:12 ` [RFC:PATCH 011/012] Make sure tail page is freed correctly Dave Kleikamp
2007-05-24 12:12 ` [RFC:PATCH 012/012] Add tail hooks into file_map.c Dave Kleikamp
2007-05-24 12:45 ` [RFC:PATCH 000/012] VM File Tails Dave Kleikamp

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=20070524121141.13533.97864.sendpatchset@kleikamp.austin.ibm.com \
    --to=shaggy@linux.vnet.ibm.com \
    --cc=linux-mm@kvack.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