From: Mel Gorman <mel@csn.ul.ie> To: Andrew Morton <akpm@linux-foundation.org> Cc: Andrea Arcangeli <aarcange@redhat.com>, Christoph Lameter <cl@linux-foundation.org>, Adam Litke <agl@us.ibm.com>, Avi Kivity <avi@redhat.com>, David Rientjes <rientjes@google.com>, KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>, Rik van Riel <riel@redhat.com>, Mel Gorman <mel@csn.ul.ie>, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 03/11] mm: Share the anon_vma ref counts between KSM and page migration Date: Fri, 12 Mar 2010 16:41:19 +0000 [thread overview] Message-ID: <1268412087-13536-4-git-send-email-mel@csn.ul.ie> (raw) In-Reply-To: <1268412087-13536-1-git-send-email-mel@csn.ul.ie> For clarity of review, KSM and page migration have separate refcounts on the anon_vma. While clear, this is a waste of memory. This patch gets KSM and page migration to share their toys in a spirit of harmony. Signed-off-by: Mel Gorman <mel@csn.ul.ie> Reviewed-by: Minchan Kim <minchan.kim@gmail.com> --- include/linux/rmap.h | 50 ++++++++++++++++++-------------------------------- mm/ksm.c | 4 ++-- mm/migrate.c | 4 ++-- mm/rmap.c | 6 ++---- 4 files changed, 24 insertions(+), 40 deletions(-) diff --git a/include/linux/rmap.h b/include/linux/rmap.h index 567d43f..7721674 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -26,11 +26,17 @@ */ struct anon_vma { spinlock_t lock; /* Serialize access to vma list */ -#ifdef CONFIG_KSM - atomic_t ksm_refcount; -#endif -#ifdef CONFIG_MIGRATION - atomic_t migrate_refcount; +#if defined(CONFIG_KSM) || defined(CONFIG_MIGRATION) + + /* + * The external_refcount is taken by either KSM or page migration + * to take a reference to an anon_vma when there is no + * guarantee that the vma of page tables will exist for + * the duration of the operation. A caller that takes + * the reference is responsible for clearing up the + * anon_vma if they are the last user on release + */ + atomic_t external_refcount; #endif /* * NOTE: the LSB of the head.next is set by @@ -64,46 +70,26 @@ struct anon_vma_chain { }; #ifdef CONFIG_MMU -#ifdef CONFIG_KSM -static inline void ksm_refcount_init(struct anon_vma *anon_vma) +#if defined(CONFIG_KSM) || defined(CONFIG_MIGRATION) +static inline void anonvma_external_refcount_init(struct anon_vma *anon_vma) { - atomic_set(&anon_vma->ksm_refcount, 0); + atomic_set(&anon_vma->external_refcount, 0); } -static inline int ksm_refcount(struct anon_vma *anon_vma) +static inline int anonvma_external_refcount(struct anon_vma *anon_vma) { - return atomic_read(&anon_vma->ksm_refcount); + return atomic_read(&anon_vma->external_refcount); } #else -static inline void ksm_refcount_init(struct anon_vma *anon_vma) +static inline void anonvma_external_refcount_init(struct anon_vma *anon_vma) { } -static inline int ksm_refcount(struct anon_vma *anon_vma) +static inline int anonvma_external_refcount(struct anon_vma *anon_vma) { return 0; } #endif /* CONFIG_KSM */ -#ifdef CONFIG_MIGRATION -static inline void migrate_refcount_init(struct anon_vma *anon_vma) -{ - atomic_set(&anon_vma->migrate_refcount, 0); -} - -static inline int migrate_refcount(struct anon_vma *anon_vma) -{ - return atomic_read(&anon_vma->migrate_refcount); -} -#else -static inline void migrate_refcount_init(struct anon_vma *anon_vma) -{ -} - -static inline int migrate_refcount(struct anon_vma *anon_vma) -{ - return 0; -} -#endif /* CONFIG_MIGRATE */ static inline struct anon_vma *page_anon_vma(struct page *page) { diff --git a/mm/ksm.c b/mm/ksm.c index a93f1b7..e45ec98 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -318,14 +318,14 @@ static void hold_anon_vma(struct rmap_item *rmap_item, struct anon_vma *anon_vma) { rmap_item->anon_vma = anon_vma; - atomic_inc(&anon_vma->ksm_refcount); + atomic_inc(&anon_vma->external_refcount); } static void drop_anon_vma(struct rmap_item *rmap_item) { struct anon_vma *anon_vma = rmap_item->anon_vma; - if (atomic_dec_and_lock(&anon_vma->ksm_refcount, &anon_vma->lock)) { + if (atomic_dec_and_lock(&anon_vma->external_refcount, &anon_vma->lock)) { int empty = list_empty(&anon_vma->head); spin_unlock(&anon_vma->lock); if (empty) diff --git a/mm/migrate.c b/mm/migrate.c index 3c491e3..dd1ab6b 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -615,7 +615,7 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private, rcu_read_lock(); rcu_locked = 1; anon_vma = page_anon_vma(page); - atomic_inc(&anon_vma->migrate_refcount); + atomic_inc(&anon_vma->external_refcount); } /* @@ -657,7 +657,7 @@ skip_unmap: rcu_unlock: /* Drop an anon_vma reference if we took one */ - if (anon_vma && atomic_dec_and_lock(&anon_vma->migrate_refcount, &anon_vma->lock)) { + if (anon_vma && atomic_dec_and_lock(&anon_vma->external_refcount, &anon_vma->lock)) { int empty = list_empty(&anon_vma->head); spin_unlock(&anon_vma->lock); if (empty) diff --git a/mm/rmap.c b/mm/rmap.c index 578d0fe..af35b75 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -248,8 +248,7 @@ static void anon_vma_unlink(struct anon_vma_chain *anon_vma_chain) list_del(&anon_vma_chain->same_anon_vma); /* We must garbage collect the anon_vma if it's empty */ - empty = list_empty(&anon_vma->head) && !ksm_refcount(anon_vma) && - !migrate_refcount(anon_vma); + empty = list_empty(&anon_vma->head) && !anonvma_external_refcount(anon_vma); spin_unlock(&anon_vma->lock); if (empty) @@ -273,8 +272,7 @@ static void anon_vma_ctor(void *data) struct anon_vma *anon_vma = data; spin_lock_init(&anon_vma->lock); - ksm_refcount_init(anon_vma); - migrate_refcount_init(anon_vma); + anonvma_external_refcount_init(anon_vma); INIT_LIST_HEAD(&anon_vma->head); } -- 1.6.5
WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mel@csn.ul.ie> To: Andrew Morton <akpm@linux-foundation.org> Cc: Andrea Arcangeli <aarcange@redhat.com>, Christoph Lameter <cl@linux-foundation.org>, Adam Litke <agl@us.ibm.com>, Avi Kivity <avi@redhat.com>, David Rientjes <rientjes@google.com>, KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>, Rik van Riel <riel@redhat.com>, Mel Gorman <mel@csn.ul.ie>, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 03/11] mm: Share the anon_vma ref counts between KSM and page migration Date: Fri, 12 Mar 2010 16:41:19 +0000 [thread overview] Message-ID: <1268412087-13536-4-git-send-email-mel@csn.ul.ie> (raw) In-Reply-To: <1268412087-13536-1-git-send-email-mel@csn.ul.ie> For clarity of review, KSM and page migration have separate refcounts on the anon_vma. While clear, this is a waste of memory. This patch gets KSM and page migration to share their toys in a spirit of harmony. Signed-off-by: Mel Gorman <mel@csn.ul.ie> Reviewed-by: Minchan Kim <minchan.kim@gmail.com> --- include/linux/rmap.h | 50 ++++++++++++++++++-------------------------------- mm/ksm.c | 4 ++-- mm/migrate.c | 4 ++-- mm/rmap.c | 6 ++---- 4 files changed, 24 insertions(+), 40 deletions(-) diff --git a/include/linux/rmap.h b/include/linux/rmap.h index 567d43f..7721674 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -26,11 +26,17 @@ */ struct anon_vma { spinlock_t lock; /* Serialize access to vma list */ -#ifdef CONFIG_KSM - atomic_t ksm_refcount; -#endif -#ifdef CONFIG_MIGRATION - atomic_t migrate_refcount; +#if defined(CONFIG_KSM) || defined(CONFIG_MIGRATION) + + /* + * The external_refcount is taken by either KSM or page migration + * to take a reference to an anon_vma when there is no + * guarantee that the vma of page tables will exist for + * the duration of the operation. A caller that takes + * the reference is responsible for clearing up the + * anon_vma if they are the last user on release + */ + atomic_t external_refcount; #endif /* * NOTE: the LSB of the head.next is set by @@ -64,46 +70,26 @@ struct anon_vma_chain { }; #ifdef CONFIG_MMU -#ifdef CONFIG_KSM -static inline void ksm_refcount_init(struct anon_vma *anon_vma) +#if defined(CONFIG_KSM) || defined(CONFIG_MIGRATION) +static inline void anonvma_external_refcount_init(struct anon_vma *anon_vma) { - atomic_set(&anon_vma->ksm_refcount, 0); + atomic_set(&anon_vma->external_refcount, 0); } -static inline int ksm_refcount(struct anon_vma *anon_vma) +static inline int anonvma_external_refcount(struct anon_vma *anon_vma) { - return atomic_read(&anon_vma->ksm_refcount); + return atomic_read(&anon_vma->external_refcount); } #else -static inline void ksm_refcount_init(struct anon_vma *anon_vma) +static inline void anonvma_external_refcount_init(struct anon_vma *anon_vma) { } -static inline int ksm_refcount(struct anon_vma *anon_vma) +static inline int anonvma_external_refcount(struct anon_vma *anon_vma) { return 0; } #endif /* CONFIG_KSM */ -#ifdef CONFIG_MIGRATION -static inline void migrate_refcount_init(struct anon_vma *anon_vma) -{ - atomic_set(&anon_vma->migrate_refcount, 0); -} - -static inline int migrate_refcount(struct anon_vma *anon_vma) -{ - return atomic_read(&anon_vma->migrate_refcount); -} -#else -static inline void migrate_refcount_init(struct anon_vma *anon_vma) -{ -} - -static inline int migrate_refcount(struct anon_vma *anon_vma) -{ - return 0; -} -#endif /* CONFIG_MIGRATE */ static inline struct anon_vma *page_anon_vma(struct page *page) { diff --git a/mm/ksm.c b/mm/ksm.c index a93f1b7..e45ec98 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -318,14 +318,14 @@ static void hold_anon_vma(struct rmap_item *rmap_item, struct anon_vma *anon_vma) { rmap_item->anon_vma = anon_vma; - atomic_inc(&anon_vma->ksm_refcount); + atomic_inc(&anon_vma->external_refcount); } static void drop_anon_vma(struct rmap_item *rmap_item) { struct anon_vma *anon_vma = rmap_item->anon_vma; - if (atomic_dec_and_lock(&anon_vma->ksm_refcount, &anon_vma->lock)) { + if (atomic_dec_and_lock(&anon_vma->external_refcount, &anon_vma->lock)) { int empty = list_empty(&anon_vma->head); spin_unlock(&anon_vma->lock); if (empty) diff --git a/mm/migrate.c b/mm/migrate.c index 3c491e3..dd1ab6b 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -615,7 +615,7 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private, rcu_read_lock(); rcu_locked = 1; anon_vma = page_anon_vma(page); - atomic_inc(&anon_vma->migrate_refcount); + atomic_inc(&anon_vma->external_refcount); } /* @@ -657,7 +657,7 @@ skip_unmap: rcu_unlock: /* Drop an anon_vma reference if we took one */ - if (anon_vma && atomic_dec_and_lock(&anon_vma->migrate_refcount, &anon_vma->lock)) { + if (anon_vma && atomic_dec_and_lock(&anon_vma->external_refcount, &anon_vma->lock)) { int empty = list_empty(&anon_vma->head); spin_unlock(&anon_vma->lock); if (empty) diff --git a/mm/rmap.c b/mm/rmap.c index 578d0fe..af35b75 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -248,8 +248,7 @@ static void anon_vma_unlink(struct anon_vma_chain *anon_vma_chain) list_del(&anon_vma_chain->same_anon_vma); /* We must garbage collect the anon_vma if it's empty */ - empty = list_empty(&anon_vma->head) && !ksm_refcount(anon_vma) && - !migrate_refcount(anon_vma); + empty = list_empty(&anon_vma->head) && !anonvma_external_refcount(anon_vma); spin_unlock(&anon_vma->lock); if (empty) @@ -273,8 +272,7 @@ static void anon_vma_ctor(void *data) struct anon_vma *anon_vma = data; spin_lock_init(&anon_vma->lock); - ksm_refcount_init(anon_vma); - migrate_refcount_init(anon_vma); + anonvma_external_refcount_init(anon_vma); INIT_LIST_HEAD(&anon_vma->head); } -- 1.6.5 -- 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>
next prev parent reply other threads:[~2010-03-12 16:41 UTC|newest] Thread overview: 218+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-03-12 16:41 [PATCH 0/11] Memory Compaction v4 Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-12 16:41 ` [PATCH 01/11] mm,migration: Take a reference to the anon_vma before migrating Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-14 15:01 ` Minchan Kim 2010-03-14 15:01 ` Minchan Kim 2010-03-15 5:06 ` KAMEZAWA Hiroyuki 2010-03-15 5:06 ` KAMEZAWA Hiroyuki 2010-03-17 1:44 ` KOSAKI Motohiro 2010-03-17 1:44 ` KOSAKI Motohiro 2010-03-17 11:45 ` Mel Gorman 2010-03-17 11:45 ` Mel Gorman 2010-03-17 16:38 ` Christoph Lameter 2010-03-17 16:38 ` Christoph Lameter 2010-03-18 11:12 ` Mel Gorman 2010-03-18 11:12 ` Mel Gorman 2010-03-18 16:31 ` Christoph Lameter 2010-03-18 16:31 ` Christoph Lameter 2010-03-12 16:41 ` [PATCH 02/11] mm,migration: Do not try to migrate unmapped anonymous pages Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-15 0:28 ` Minchan Kim 2010-03-15 0:28 ` Minchan Kim 2010-03-15 5:34 ` KAMEZAWA Hiroyuki 2010-03-15 5:34 ` KAMEZAWA Hiroyuki 2010-03-15 6:28 ` Minchan Kim 2010-03-15 6:28 ` Minchan Kim 2010-03-15 6:44 ` KAMEZAWA Hiroyuki 2010-03-15 6:44 ` KAMEZAWA Hiroyuki 2010-03-15 7:09 ` KAMEZAWA Hiroyuki 2010-03-15 7:09 ` KAMEZAWA Hiroyuki 2010-03-15 13:48 ` Minchan Kim 2010-03-15 13:48 ` Minchan Kim 2010-03-15 7:11 ` Minchan Kim 2010-03-15 7:11 ` Minchan Kim 2010-03-15 11:28 ` Mel Gorman 2010-03-15 11:28 ` Mel Gorman 2010-03-15 12:48 ` Minchan Kim 2010-03-15 12:48 ` Minchan Kim 2010-03-15 14:21 ` Mel Gorman 2010-03-15 14:21 ` Mel Gorman 2010-03-15 14:33 ` Minchan Kim 2010-03-15 14:33 ` Minchan Kim 2010-03-15 23:49 ` KAMEZAWA Hiroyuki 2010-03-15 23:49 ` KAMEZAWA Hiroyuki 2010-03-17 2:12 ` KAMEZAWA Hiroyuki 2010-03-17 2:12 ` KAMEZAWA Hiroyuki 2010-03-17 3:00 ` Minchan Kim 2010-03-17 3:00 ` Minchan Kim 2010-03-17 3:15 ` KAMEZAWA Hiroyuki 2010-03-17 3:15 ` KAMEZAWA Hiroyuki 2010-03-17 4:15 ` Minchan Kim 2010-03-17 4:15 ` Minchan Kim 2010-03-17 4:19 ` KAMEZAWA Hiroyuki 2010-03-17 4:19 ` KAMEZAWA Hiroyuki 2010-03-17 16:41 ` Christoph Lameter 2010-03-17 16:41 ` Christoph Lameter 2010-03-18 0:30 ` KAMEZAWA Hiroyuki 2010-03-18 0:30 ` KAMEZAWA Hiroyuki 2010-03-17 12:07 ` Mel Gorman 2010-03-17 12:07 ` Mel Gorman 2010-03-17 2:03 ` KOSAKI Motohiro 2010-03-17 2:03 ` KOSAKI Motohiro 2010-03-17 11:51 ` Mel Gorman 2010-03-17 11:51 ` Mel Gorman 2010-03-18 0:48 ` KOSAKI Motohiro 2010-03-18 0:48 ` KOSAKI Motohiro 2010-03-18 11:14 ` Mel Gorman 2010-03-18 11:14 ` Mel Gorman 2010-03-19 6:21 ` KOSAKI Motohiro 2010-03-19 6:21 ` KOSAKI Motohiro 2010-03-19 8:59 ` Mel Gorman 2010-03-19 8:59 ` Mel Gorman 2010-03-25 2:49 ` KOSAKI Motohiro 2010-03-25 2:49 ` KOSAKI Motohiro 2010-03-25 8:32 ` Mel Gorman 2010-03-25 8:32 ` Mel Gorman 2010-03-25 8:56 ` KOSAKI Motohiro 2010-03-25 8:56 ` KOSAKI Motohiro 2010-03-25 9:18 ` Mel Gorman 2010-03-25 9:18 ` Mel Gorman 2010-03-25 9:02 ` KAMEZAWA Hiroyuki 2010-03-25 9:02 ` KAMEZAWA Hiroyuki 2010-03-25 9:09 ` KOSAKI Motohiro 2010-03-25 9:09 ` KOSAKI Motohiro 2010-03-25 9:08 ` KAMEZAWA Hiroyuki 2010-03-25 9:08 ` KAMEZAWA Hiroyuki 2010-03-25 9:21 ` Mel Gorman 2010-03-25 9:21 ` Mel Gorman 2010-03-25 9:41 ` KAMEZAWA Hiroyuki 2010-03-25 9:41 ` KAMEZAWA Hiroyuki 2010-03-25 9:59 ` KOSAKI Motohiro 2010-03-25 9:59 ` KOSAKI Motohiro 2010-03-25 10:12 ` KAMEZAWA Hiroyuki 2010-03-25 10:12 ` KAMEZAWA Hiroyuki 2010-03-25 13:39 ` Mel Gorman 2010-03-25 13:39 ` Mel Gorman 2010-03-26 3:07 ` KOSAKI Motohiro 2010-03-26 3:07 ` KOSAKI Motohiro 2010-03-26 13:49 ` Mel Gorman 2010-03-26 13:49 ` Mel Gorman 2010-03-25 15:29 ` Minchan Kim 2010-03-25 15:29 ` Minchan Kim 2010-03-26 0:58 ` KAMEZAWA Hiroyuki 2010-03-26 0:58 ` KAMEZAWA Hiroyuki 2010-03-26 1:39 ` Minchan Kim 2010-03-26 1:39 ` Minchan Kim 2010-03-25 14:35 ` Christoph Lameter 2010-03-25 14:35 ` Christoph Lameter 2010-03-25 16:16 ` Minchan Kim 2010-03-25 16:16 ` Minchan Kim 2010-03-12 16:41 ` Mel Gorman [this message] 2010-03-12 16:41 ` [PATCH 03/11] mm: Share the anon_vma ref counts between KSM and page migration Mel Gorman 2010-03-12 17:14 ` Rik van Riel 2010-03-12 17:14 ` Rik van Riel 2010-03-15 5:35 ` KAMEZAWA Hiroyuki 2010-03-15 5:35 ` KAMEZAWA Hiroyuki 2010-03-17 2:06 ` KOSAKI Motohiro 2010-03-17 2:06 ` KOSAKI Motohiro 2010-03-12 16:41 ` [PATCH 04/11] Allow CONFIG_MIGRATION to be set without CONFIG_NUMA or memory hot-remove Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-17 2:28 ` KOSAKI Motohiro 2010-03-17 2:28 ` KOSAKI Motohiro 2010-03-17 11:32 ` Mel Gorman 2010-03-17 11:32 ` Mel Gorman 2010-03-17 16:37 ` Christoph Lameter 2010-03-17 16:37 ` Christoph Lameter 2010-03-17 23:56 ` KOSAKI Motohiro 2010-03-17 23:56 ` KOSAKI Motohiro 2010-03-18 11:24 ` Mel Gorman 2010-03-18 11:24 ` Mel Gorman 2010-03-19 6:21 ` KOSAKI Motohiro 2010-03-19 6:21 ` KOSAKI Motohiro 2010-03-19 10:16 ` Mel Gorman 2010-03-19 10:16 ` Mel Gorman 2010-03-25 3:28 ` KOSAKI Motohiro 2010-03-25 3:28 ` KOSAKI Motohiro 2010-03-12 16:41 ` [PATCH 05/11] Export unusable free space index via /proc/unusable_index Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-15 5:41 ` KAMEZAWA Hiroyuki 2010-03-15 5:41 ` KAMEZAWA Hiroyuki 2010-03-15 9:48 ` Mel Gorman 2010-03-15 9:48 ` Mel Gorman 2010-03-17 2:42 ` KOSAKI Motohiro 2010-03-17 2:42 ` KOSAKI Motohiro 2010-03-12 16:41 ` [PATCH 06/11] Export fragmentation index via /proc/extfrag_index Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-17 2:49 ` KOSAKI Motohiro 2010-03-17 2:49 ` KOSAKI Motohiro 2010-03-17 11:33 ` Mel Gorman 2010-03-17 11:33 ` Mel Gorman 2010-03-23 0:22 ` KOSAKI Motohiro 2010-03-23 0:22 ` KOSAKI Motohiro 2010-03-23 12:03 ` Mel Gorman 2010-03-23 12:03 ` Mel Gorman 2010-03-25 2:47 ` KOSAKI Motohiro 2010-03-25 2:47 ` KOSAKI Motohiro 2010-03-25 8:47 ` Mel Gorman 2010-03-25 8:47 ` Mel Gorman 2010-03-25 11:20 ` KOSAKI Motohiro 2010-03-25 11:20 ` KOSAKI Motohiro 2010-03-25 14:11 ` Mel Gorman 2010-03-25 14:11 ` Mel Gorman 2010-03-26 3:10 ` KOSAKI Motohiro 2010-03-26 3:10 ` KOSAKI Motohiro 2010-03-12 16:41 ` [PATCH 07/11] Memory compaction core Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-15 13:44 ` Minchan Kim 2010-03-15 13:44 ` Minchan Kim 2010-03-15 14:41 ` Mel Gorman 2010-03-15 14:41 ` Mel Gorman 2010-03-17 10:31 ` KOSAKI Motohiro 2010-03-17 10:31 ` KOSAKI Motohiro 2010-03-17 11:40 ` Mel Gorman 2010-03-17 11:40 ` Mel Gorman 2010-03-18 2:35 ` KOSAKI Motohiro 2010-03-18 2:35 ` KOSAKI Motohiro 2010-03-18 11:43 ` Mel Gorman 2010-03-18 11:43 ` Mel Gorman 2010-03-19 6:21 ` KOSAKI Motohiro 2010-03-19 6:21 ` KOSAKI Motohiro 2010-03-18 17:08 ` Mel Gorman 2010-03-18 17:08 ` Mel Gorman 2010-03-12 16:41 ` [PATCH 08/11] Add /proc trigger for memory compaction Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-17 3:18 ` KOSAKI Motohiro 2010-03-17 3:18 ` KOSAKI Motohiro 2010-03-12 16:41 ` [PATCH 09/11] Add /sys trigger for per-node " Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-17 3:18 ` KOSAKI Motohiro 2010-03-17 3:18 ` KOSAKI Motohiro 2010-03-12 16:41 ` [PATCH 10/11] Direct compact when a high-order allocation fails Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-16 2:47 ` Minchan Kim 2010-03-16 2:47 ` Minchan Kim 2010-03-19 6:21 ` KOSAKI Motohiro 2010-03-19 6:21 ` KOSAKI Motohiro 2010-03-19 6:31 ` KOSAKI Motohiro 2010-03-19 6:31 ` KOSAKI Motohiro 2010-03-19 10:10 ` Mel Gorman 2010-03-19 10:10 ` Mel Gorman 2010-03-25 11:22 ` KOSAKI Motohiro 2010-03-25 11:22 ` KOSAKI Motohiro 2010-03-19 10:09 ` Mel Gorman 2010-03-19 10:09 ` Mel Gorman 2010-03-25 11:08 ` KOSAKI Motohiro 2010-03-25 11:08 ` KOSAKI Motohiro 2010-03-25 15:11 ` Mel Gorman 2010-03-25 15:11 ` Mel Gorman 2010-03-26 6:01 ` KOSAKI Motohiro 2010-03-26 6:01 ` KOSAKI Motohiro 2010-03-12 16:41 ` [PATCH 11/11] Do not compact within a preferred zone after a compaction failure Mel Gorman 2010-03-12 16:41 ` Mel Gorman 2010-03-23 12:25 [PATCH 0/11] Memory Compaction v5 Mel Gorman 2010-03-23 12:25 ` [PATCH 03/11] mm: Share the anon_vma ref counts between KSM and page migration Mel Gorman 2010-03-23 12:25 ` Mel Gorman 2010-03-23 17:25 ` Christoph Lameter 2010-03-23 17:25 ` Christoph Lameter 2010-03-23 23:55 ` KAMEZAWA Hiroyuki 2010-03-23 23:55 ` KAMEZAWA Hiroyuki
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=1268412087-13536-4-git-send-email-mel@csn.ul.ie \ --to=mel@csn.ul.ie \ --cc=aarcange@redhat.com \ --cc=agl@us.ibm.com \ --cc=akpm@linux-foundation.org \ --cc=avi@redhat.com \ --cc=cl@linux-foundation.org \ --cc=kosaki.motohiro@jp.fujitsu.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=riel@redhat.com \ --cc=rientjes@google.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.