lkml.org 
[lkml]   [2010]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[BUGFIX][PATCH] fix sync_mm_rss in nommu (Was Re: sync_mm_rss() issues
David-san, could you check this ?
==
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

Fix breakage in NOMMU build

commit 34e55232e59f7b19050267a05ff1226e5cd122a5 added sync_mm_rss()
for syncing loosely accounted rss counters. It's for CONFIG_MMU but
sync_mm_rss is called even in NOMMU enviroment (kerne/exit.c, fs/exec.c).
Above commit doesn't handle it well.

This patch changes
SPLIT_RSS_COUNTING depends on SPLIT_PTLOCKS && CONFIG_MMU

And for avoid unnecessary function calls, sync_mm_rss changed to be inlined
noop function in header file.

Reported-by: David Howells <dhowells@redhat.com>
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
---
include/linux/mm.h | 6 ++++++
include/linux/mm_types.h | 2 +-
mm/memory.c | 3 ---
3 files changed, 7 insertions(+), 4 deletions(-)

Index: mmotm-2.6.33-Mar5/include/linux/mm.h
===================================================================
--- mmotm-2.6.33-Mar5.orig/include/linux/mm.h
+++ mmotm-2.6.33-Mar5/include/linux/mm.h
@@ -974,7 +974,13 @@ static inline void setmax_mm_hiwater_rss
*maxrss = hiwater_rss;
}

+#if defined(SPLIT_RSS_COUNTING)
void sync_mm_rss(struct task_struct *task, struct mm_struct *mm);
+#else
+static inline void sync_mm_rss(struct task_struct *task, struct mm_struct *mm)
+{
+}
+#endif

/*
* A callback you can register to apply pressure to ageable caches.
Index: mmotm-2.6.33-Mar5/mm/memory.c
===================================================================
--- mmotm-2.6.33-Mar5.orig/mm/memory.c
+++ mmotm-2.6.33-Mar5/mm/memory.c
@@ -190,9 +190,6 @@ static void check_sync_rss_stat(struct t
{
}

-void sync_mm_rss(struct task_struct *task, struct mm_struct *mm)
-{
-}
#endif

/*
Index: mmotm-2.6.33-Mar5/include/linux/mm_types.h
===================================================================
--- mmotm-2.6.33-Mar5.orig/include/linux/mm_types.h
+++ mmotm-2.6.33-Mar5/include/linux/mm_types.h
@@ -203,7 +203,7 @@ enum {
NR_MM_COUNTERS
};

-#if USE_SPLIT_PTLOCKS
+#if USE_SPLIT_PTLOCKS && defined(CONFIG_MMU)
#define SPLIT_RSS_COUNTING
struct mm_rss_stat {
atomic_long_t count[NR_MM_COUNTERS];


\
 
 \ /
  Last update: 2010-03-09 02:05    [from the cache]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog