[PATCH 1/4] Create files_init_early()

From: Christoph Lameter
Date: Thu Jun 22 2006 - 17:30:05 EST


files rcu optimization: Creates files_init_early()

This moves the creation of the filp cache into fs/file_table.c

Signed-off-by: Christoph Lameter <clameter@xxxxxxx>

Index: linux-2.6.17/include/linux/fs.h
===================================================================
--- linux-2.6.17.orig/include/linux/fs.h 2006-06-17 18:49:35.000000000 -0700
+++ linux-2.6.17/include/linux/fs.h 2006-06-22 13:16:13.317087178 -0700
@@ -252,6 +252,7 @@ extern void __init inode_init(unsigned l
extern void __init inode_init_early(void);
extern void __init mnt_init(unsigned long);
extern void __init files_init(unsigned long);
+extern void __init files_init_early(void);

struct buffer_head;
typedef int (get_block_t)(struct inode *inode, sector_t iblock,
Index: linux-2.6.17/fs/file_table.c
===================================================================
--- linux-2.6.17.orig/fs/file_table.c 2006-06-17 18:49:35.000000000 -0700
+++ linux-2.6.17/fs/file_table.c 2006-06-22 14:03:54.484771991 -0700
@@ -35,6 +35,12 @@ __cacheline_aligned_in_smp DEFINE_SPINLO

static struct percpu_counter nr_files __cacheline_aligned_in_smp;

+void __init files_init_early(void)
+{
+ filp_cachep = kmem_cache_create("filp", sizeof(struct file), 0,
+ SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL, NULL);
+}
+
static inline void file_free_rcu(struct rcu_head *head)
{
struct file *f = container_of(head, struct file, f_u.fu_rcuhead);
Index: linux-2.6.17/fs/dcache.c
===================================================================
--- linux-2.6.17.orig/fs/dcache.c 2006-06-17 18:49:35.000000000 -0700
+++ linux-2.6.17/fs/dcache.c 2006-06-22 13:16:13.319040183 -0700
@@ -1751,9 +1751,7 @@ void __init vfs_caches_init(unsigned lon
names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL, NULL);

- filp_cachep = kmem_cache_create("filp", sizeof(struct file), 0,
- SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL, NULL);
-
+ files_init_early();
dcache_init(mempages);
inode_init(mempages);
files_init(mempages);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/