2011-05-29 20:46:21

by Cesar Eduardo Barros

[permalink] [raw]
Subject: [PATCH] cleancache: use __read_mostly for cleancache_enabled

The global variable cleancache_enabled is read often but written to
rarely. Use __read_mostly to prevent it being on the same cacheline as
another variable which is written to often, which would cause cacheline
bouncing.

Signed-off-by: Cesar Eduardo Barros <[email protected]>
---
include/linux/cleancache.h | 2 +-
mm/cleancache.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index 04ffb2e..83fffe8 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -42,7 +42,7 @@ extern void __cleancache_put_page(struct page *);
extern void __cleancache_flush_page(struct address_space *, struct page *);
extern void __cleancache_flush_inode(struct address_space *);
extern void __cleancache_flush_fs(struct super_block *);
-extern int cleancache_enabled;
+extern int cleancache_enabled __read_mostly;

#ifdef CONFIG_CLEANCACHE
static inline bool cleancache_fs_enabled(struct page *page)
diff --git a/mm/cleancache.c b/mm/cleancache.c
index bcaae4c..a3d7a22 100644
--- a/mm/cleancache.c
+++ b/mm/cleancache.c
@@ -24,7 +24,7 @@
* disabled), so is preferred to the slower alternative: a function
* call that checks a non-global.
*/
-int cleancache_enabled;
+int cleancache_enabled __read_mostly;
EXPORT_SYMBOL(cleancache_enabled);

/*
--
1.7.4.4


2011-05-30 00:35:31

by Minchan Kim

[permalink] [raw]
Subject: Re: [PATCH] cleancache: use __read_mostly for cleancache_enabled

On Mon, May 30, 2011 at 5:38 AM, Cesar Eduardo Barros <[email protected]> wrote:
> The global variable cleancache_enabled is read often but written to
> rarely. Use __read_mostly to prevent it being on the same cacheline as
> another variable which is written to often, which would cause cacheline
> bouncing.
>
> Signed-off-by: Cesar Eduardo Barros <[email protected]>
Reviewed-by: Minchan Kim <[email protected]>


--
Kind regards,
Minchan Kim