2006-01-17 14:27:12

by Marcelo Tosatti

[permalink] [raw]
Subject: make "struct d_cookie" dependable on CONFIG_PROFILING?


Hi,

Is there any good reason for not making "struct dcookie_struct
*d_cookie" dependable on CONFIG_PROFILING?

Shrinks "struct dentry" from 128 bytes to 124 on x86, allowing
31 objects per slab instead of 30.

John Levon informed me that he had such selection in his
original patches, but was asked but take it off (?).


--- ./fs/dcache.c.orig 2006-01-17 09:52:31.000000000 -0200
+++ ./fs/dcache.c 2006-01-17 09:52:50.000000000 -0200
@@ -743,7 +743,9 @@ struct dentry *d_alloc(struct dentry * p
dentry->d_op = NULL;
dentry->d_fsdata = NULL;
dentry->d_mounted = 0;
+#ifdef CONFIG_PROFILING
dentry->d_cookie = NULL;
+#endif
INIT_HLIST_NODE(&dentry->d_hash);
INIT_LIST_HEAD(&dentry->d_lru);
INIT_LIST_HEAD(&dentry->d_subdirs);
--- ./include/linux/dcache.h.orig 2006-01-17 09:54:12.000000000 -0200
+++ ./include/linux/dcache.h 2006-01-17 09:55:26.000000000 -0200
@@ -108,7 +108,9 @@ struct dentry {
struct dentry_operations *d_op;
struct super_block *d_sb; /* The root of the dentry tree */
void *d_fsdata; /* fs-specific data */
+#ifdef CONFIG_PROFILING
struct dcookie_struct *d_cookie; /* cookie, if any */
+#endif
int d_mounted;
unsigned char d_iname[DNAME_INLINE_LEN_MIN]; /* small names */
};


2006-01-17 15:03:04

by Philippe Elie

[permalink] [raw]
Subject: Re: make "struct d_cookie" dependable on CONFIG_PROFILING?

On Tue, 17 Jan 2006 at 10:27 +0000, Marcelo Tosatti wrote:


> Is there any good reason for not making "struct dcookie_struct
> *d_cookie" dependable on CONFIG_PROFILING?
>
> Shrinks "struct dentry" from 128 bytes to 124 on x86, allowing
> 31 objects per slab instead of 30.
>
> John Levon informed me that he had such selection in his
> original patches, but was asked but take it off (?).

iirc this was seen usefull by other tools than profiler but
fs/Makefile contains:

obj-$(CONFIG_PROFILING) += dcookies.o

and nobody complained agaisnt it.

--
regards,
Philippe Elie