From: Andrea Arcangeli <andrea@qumranet.com>
To: Robin Holt <holt@sgi.com>
Cc: Jack Steiner <steiner@sgi.com>,
Christoph Lameter <clameter@sgi.com>,
Nick Piggin <npiggin@suse.de>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
kvm-devel@lists.sourceforge.net,
Kanoj Sarcar <kanojsarcar@yahoo.com>,
Roland Dreier <rdreier@cisco.com>,
Steve Wise <swise@opengridcomputing.com>,
linux-kernel@vger.kernel.org, Avi Kivity <avi@qumranet.com>,
linux-mm@kvack.org, general@lists.openfabrics.org,
Hugh Dickins <hugh@veritas.com>,
akpm@linux-foundation.org, Rusty Russell <rusty@rustcorp.com.au>
Subject: Re: [PATCH 01 of 12] Core of mmu notifiers
Date: Sat, 26 Apr 2008 16:04:06 +0200 [thread overview]
Message-ID: <20080426140406.GH9514@duo.random> (raw)
In-Reply-To: <20080426131734.GB19717@sgi.com>
On Sat, Apr 26, 2008 at 08:17:34AM -0500, Robin Holt wrote:
> Since this include and the one for mm_types.h both are build breakages
> for ia64, I think you need to apply your ia64_cpumask and the following
> (possibly as a single patch) first or in your patch 1. Without that,
> ia64 doing a git-bisect could hit a build failure.
Agreed, so it doesn't risk to break ia64 compilation, thanks for the
great XPMEM feedback!
Also note, I figured out that mmu_notifier_release can actually run
concurrently against other mmu notifiers in case there's a vmtruncate
(->release could already run concurrently if invoked by _unregister,
the only guarantee is that ->release will be called one time and only
one time and that no mmu notifier will ever run after _unregister
returns).
In short I can't keep the list_del_init in _release and I need a
list_del_init_rcu instead to fix this minor issue. So this won't
really make much difference after all.
I'll release #v14 with all this after a bit of kvm testing with it...
diff --git a/include/linux/list.h b/include/linux/list.h
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -755,6 +755,14 @@ static inline void hlist_del_init(struct
}
}
+static inline void hlist_del_init_rcu(struct hlist_node *n)
+{
+ if (!hlist_unhashed(n)) {
+ __hlist_del(n);
+ n->pprev = NULL;
+ }
+}
+
/**
* hlist_replace_rcu - replace old entry by new one
* @old : the element to be replaced
diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h
--- a/include/linux/mmu_notifier.h
+++ b/include/linux/mmu_notifier.h
@@ -22,7 +22,10 @@ struct mmu_notifier_ops {
/*
* Called either by mmu_notifier_unregister or when the mm is
* being destroyed by exit_mmap, always before all pages are
- * freed. It's mandatory to implement this method.
+ * freed. It's mandatory to implement this method. This can
+ * run concurrently to other mmu notifier methods and it
+ * should teardown all secondary mmu mappings and freeze the
+ * secondary mmu.
*/
void (*release)(struct mmu_notifier *mn,
struct mm_struct *mm);
diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c
--- a/mm/mmu_notifier.c
+++ b/mm/mmu_notifier.c
@@ -19,12 +19,13 @@
/*
* This function can't run concurrently against mmu_notifier_register
- * or any other mmu notifier method. mmu_notifier_register can only
- * run with mm->mm_users > 0 (and exit_mmap runs only when mm_users is
- * zero). All other tasks of this mm already quit so they can't invoke
- * mmu notifiers anymore. This can run concurrently only against
- * mmu_notifier_unregister and it serializes against it with the
- * mmu_notifier_mm->lock in addition to RCU. struct mmu_notifier_mm
+ * because mm->mm_users > 0 during mmu_notifier_register and exit_mmap
+ * runs with mm_users == 0. Other tasks may still invoke mmu notifiers
+ * in parallel despite there's no task using this mm anymore, through
+ * the vmas outside of the exit_mmap context, like with
+ * vmtruncate. This serializes against mmu_notifier_unregister with
+ * the mmu_notifier_mm->lock in addition to SRCU and it serializes
+ * against the other mmu notifiers with SRCU. struct mmu_notifier_mm
* can't go away from under us as exit_mmap holds a mm_count pin
* itself.
*/
@@ -44,7 +45,7 @@ void __mmu_notifier_release(struct mm_st
* to wait ->release to finish and
* mmu_notifier_unregister to return.
*/
- hlist_del_init(&mn->hlist);
+ hlist_del_init_rcu(&mn->hlist);
/*
* SRCU here will block mmu_notifier_unregister until
* ->release returns.
@@ -185,6 +186,8 @@ int mmu_notifier_register(struct mmu_not
* side note: mmu_notifier_release can't run concurrently with
* us because we hold the mm_users pin (either implicitly as
* current->mm or explicitly with get_task_mm() or similar).
+ * We can't race against any other mmu notifiers either thanks
+ * to mm_lock().
*/
spin_lock(&mm->mmu_notifier_mm->lock);
hlist_add_head(&mn->hlist, &mm->mmu_notifier_mm->list);
WARNING: multiple messages have this Message-ID (diff)
From: Andrea Arcangeli <andrea@qumranet.com>
To: Robin Holt <holt@sgi.com>
Cc: Nick Piggin <npiggin@suse.de>,
Steve Wise <swise@opengridcomputing.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
kvm-devel@lists.sourceforge.net,
Kanoj Sarcar <kanojsarcar@yahoo.com>,
Roland Dreier <rdreier@cisco.com>, Jack Steiner <steiner@sgi.com>,
linux-kernel@vger.kernel.org, Avi Kivity <avi@qumranet.com>,
linux-mm@kvack.org, general@lists.openfabrics.org,
Hugh Dickins <hugh@veritas.com>,
akpm@linux-foundation.org, Christoph Lameter <clameter@sgi.com>
Subject: Re: [PATCH 01 of 12] Core of mmu notifiers
Date: Sat, 26 Apr 2008 16:04:06 +0200 [thread overview]
Message-ID: <20080426140406.GH9514@duo.random> (raw)
In-Reply-To: <20080426131734.GB19717@sgi.com>
On Sat, Apr 26, 2008 at 08:17:34AM -0500, Robin Holt wrote:
> Since this include and the one for mm_types.h both are build breakages
> for ia64, I think you need to apply your ia64_cpumask and the following
> (possibly as a single patch) first or in your patch 1. Without that,
> ia64 doing a git-bisect could hit a build failure.
Agreed, so it doesn't risk to break ia64 compilation, thanks for the
great XPMEM feedback!
Also note, I figured out that mmu_notifier_release can actually run
concurrently against other mmu notifiers in case there's a vmtruncate
(->release could already run concurrently if invoked by _unregister,
the only guarantee is that ->release will be called one time and only
one time and that no mmu notifier will ever run after _unregister
returns).
In short I can't keep the list_del_init in _release and I need a
list_del_init_rcu instead to fix this minor issue. So this won't
really make much difference after all.
I'll release #v14 with all this after a bit of kvm testing with it...
diff --git a/include/linux/list.h b/include/linux/list.h
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -755,6 +755,14 @@ static inline void hlist_del_init(struct
}
}
+static inline void hlist_del_init_rcu(struct hlist_node *n)
+{
+ if (!hlist_unhashed(n)) {
+ __hlist_del(n);
+ n->pprev = NULL;
+ }
+}
+
/**
* hlist_replace_rcu - replace old entry by new one
* @old : the element to be replaced
diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h
--- a/include/linux/mmu_notifier.h
+++ b/include/linux/mmu_notifier.h
@@ -22,7 +22,10 @@ struct mmu_notifier_ops {
/*
* Called either by mmu_notifier_unregister or when the mm is
* being destroyed by exit_mmap, always before all pages are
- * freed. It's mandatory to implement this method.
+ * freed. It's mandatory to implement this method. This can
+ * run concurrently to other mmu notifier methods and it
+ * should teardown all secondary mmu mappings and freeze the
+ * secondary mmu.
*/
void (*release)(struct mmu_notifier *mn,
struct mm_struct *mm);
diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c
--- a/mm/mmu_notifier.c
+++ b/mm/mmu_notifier.c
@@ -19,12 +19,13 @@
/*
* This function can't run concurrently against mmu_notifier_register
- * or any other mmu notifier method. mmu_notifier_register can only
- * run with mm->mm_users > 0 (and exit_mmap runs only when mm_users is
- * zero). All other tasks of this mm already quit so they can't invoke
- * mmu notifiers anymore. This can run concurrently only against
- * mmu_notifier_unregister and it serializes against it with the
- * mmu_notifier_mm->lock in addition to RCU. struct mmu_notifier_mm
+ * because mm->mm_users > 0 during mmu_notifier_register and exit_mmap
+ * runs with mm_users == 0. Other tasks may still invoke mmu notifiers
+ * in parallel despite there's no task using this mm anymore, through
+ * the vmas outside of the exit_mmap context, like with
+ * vmtruncate. This serializes against mmu_notifier_unregister with
+ * the mmu_notifier_mm->lock in addition to SRCU and it serializes
+ * against the other mmu notifiers with SRCU. struct mmu_notifier_mm
* can't go away from under us as exit_mmap holds a mm_count pin
* itself.
*/
@@ -44,7 +45,7 @@ void __mmu_notifier_release(struct mm_st
* to wait ->release to finish and
* mmu_notifier_unregister to return.
*/
- hlist_del_init(&mn->hlist);
+ hlist_del_init_rcu(&mn->hlist);
/*
* SRCU here will block mmu_notifier_unregister until
* ->release returns.
@@ -185,6 +186,8 @@ int mmu_notifier_register(struct mmu_not
* side note: mmu_notifier_release can't run concurrently with
* us because we hold the mm_users pin (either implicitly as
* current->mm or explicitly with get_task_mm() or similar).
+ * We can't race against any other mmu notifiers either thanks
+ * to mm_lock().
*/
spin_lock(&mm->mmu_notifier_mm->lock);
hlist_add_head(&mn->hlist, &mm->mmu_notifier_mm->list);
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
WARNING: multiple messages have this Message-ID (diff)
From: Andrea Arcangeli <andrea@qumranet.com>
To: Robin Holt <holt@sgi.com>
Cc: Jack Steiner <steiner@sgi.com>,
Christoph Lameter <clameter@sgi.com>,
Nick Piggin <npiggin@suse.de>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
kvm-devel@lists.sourceforge.net,
Kanoj Sarcar <kanojsarcar@yahoo.com>,
Roland Dreier <rdreier@cisco.com>,
Steve Wise <swise@opengridcomputing.com>,
linux-kernel@vger.kernel.org, Avi Kivity <avi@qumranet.com>,
linux-mm@kvack.org, general@lists.openfabrics.org,
Hugh Dickins <hugh@veritas.com>,
akpm@linux-foundation.org, Rusty Russell <rusty@rustcorp.com.au>
Subject: Re: [PATCH 01 of 12] Core of mmu notifiers
Date: Sat, 26 Apr 2008 16:04:06 +0200 [thread overview]
Message-ID: <20080426140406.GH9514@duo.random> (raw)
In-Reply-To: <20080426131734.GB19717@sgi.com>
On Sat, Apr 26, 2008 at 08:17:34AM -0500, Robin Holt wrote:
> Since this include and the one for mm_types.h both are build breakages
> for ia64, I think you need to apply your ia64_cpumask and the following
> (possibly as a single patch) first or in your patch 1. Without that,
> ia64 doing a git-bisect could hit a build failure.
Agreed, so it doesn't risk to break ia64 compilation, thanks for the
great XPMEM feedback!
Also note, I figured out that mmu_notifier_release can actually run
concurrently against other mmu notifiers in case there's a vmtruncate
(->release could already run concurrently if invoked by _unregister,
the only guarantee is that ->release will be called one time and only
one time and that no mmu notifier will ever run after _unregister
returns).
In short I can't keep the list_del_init in _release and I need a
list_del_init_rcu instead to fix this minor issue. So this won't
really make much difference after all.
I'll release #v14 with all this after a bit of kvm testing with it...
diff --git a/include/linux/list.h b/include/linux/list.h
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -755,6 +755,14 @@ static inline void hlist_del_init(struct
}
}
+static inline void hlist_del_init_rcu(struct hlist_node *n)
+{
+ if (!hlist_unhashed(n)) {
+ __hlist_del(n);
+ n->pprev = NULL;
+ }
+}
+
/**
* hlist_replace_rcu - replace old entry by new one
* @old : the element to be replaced
diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h
--- a/include/linux/mmu_notifier.h
+++ b/include/linux/mmu_notifier.h
@@ -22,7 +22,10 @@ struct mmu_notifier_ops {
/*
* Called either by mmu_notifier_unregister or when the mm is
* being destroyed by exit_mmap, always before all pages are
- * freed. It's mandatory to implement this method.
+ * freed. It's mandatory to implement this method. This can
+ * run concurrently to other mmu notifier methods and it
+ * should teardown all secondary mmu mappings and freeze the
+ * secondary mmu.
*/
void (*release)(struct mmu_notifier *mn,
struct mm_struct *mm);
diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c
--- a/mm/mmu_notifier.c
+++ b/mm/mmu_notifier.c
@@ -19,12 +19,13 @@
/*
* This function can't run concurrently against mmu_notifier_register
- * or any other mmu notifier method. mmu_notifier_register can only
- * run with mm->mm_users > 0 (and exit_mmap runs only when mm_users is
- * zero). All other tasks of this mm already quit so they can't invoke
- * mmu notifiers anymore. This can run concurrently only against
- * mmu_notifier_unregister and it serializes against it with the
- * mmu_notifier_mm->lock in addition to RCU. struct mmu_notifier_mm
+ * because mm->mm_users > 0 during mmu_notifier_register and exit_mmap
+ * runs with mm_users == 0. Other tasks may still invoke mmu notifiers
+ * in parallel despite there's no task using this mm anymore, through
+ * the vmas outside of the exit_mmap context, like with
+ * vmtruncate. This serializes against mmu_notifier_unregister with
+ * the mmu_notifier_mm->lock in addition to SRCU and it serializes
+ * against the other mmu notifiers with SRCU. struct mmu_notifier_mm
* can't go away from under us as exit_mmap holds a mm_count pin
* itself.
*/
@@ -44,7 +45,7 @@ void __mmu_notifier_release(struct mm_st
* to wait ->release to finish and
* mmu_notifier_unregister to return.
*/
- hlist_del_init(&mn->hlist);
+ hlist_del_init_rcu(&mn->hlist);
/*
* SRCU here will block mmu_notifier_unregister until
* ->release returns.
@@ -185,6 +186,8 @@ int mmu_notifier_register(struct mmu_not
* side note: mmu_notifier_release can't run concurrently with
* us because we hold the mm_users pin (either implicitly as
* current->mm or explicitly with get_task_mm() or similar).
+ * We can't race against any other mmu notifiers either thanks
+ * to mm_lock().
*/
spin_lock(&mm->mmu_notifier_mm->lock);
hlist_add_head(&mn->hlist, &mm->mmu_notifier_mm->list);
--
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:[~2008-04-26 14:04 UTC|newest]
Thread overview: 249+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-22 13:51 [PATCH 00 of 12] mmu notifier #v13 Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` [ofa-general] " Andrea Arcangeli
2008-04-22 13:51 ` [PATCH 01 of 12] Core of mmu notifiers Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 14:56 ` Eric Dumazet
2008-04-22 14:56 ` Eric Dumazet
2008-04-22 15:15 ` Andrea Arcangeli
2008-04-22 15:15 ` Andrea Arcangeli
2008-04-22 15:15 ` [ofa-general] " Andrea Arcangeli
2008-04-22 15:24 ` Avi Kivity
2008-04-22 15:24 ` Avi Kivity
2008-04-22 15:37 ` Eric Dumazet
2008-04-22 15:37 ` Eric Dumazet
2008-04-22 16:46 ` Andrea Arcangeli
2008-04-22 16:46 ` Andrea Arcangeli
2008-04-22 16:46 ` [ofa-general] " Andrea Arcangeli
2008-04-22 20:19 ` Christoph Lameter
2008-04-22 20:19 ` Christoph Lameter
2008-04-22 20:19 ` [ofa-general] " Christoph Lameter
2008-04-22 20:31 ` Robin Holt
2008-04-22 20:31 ` Robin Holt
2008-04-22 20:31 ` [ofa-general] " Robin Holt
2008-04-22 22:35 ` Andrea Arcangeli
2008-04-22 22:35 ` Andrea Arcangeli
2008-04-22 22:35 ` Andrea Arcangeli
2008-04-22 23:07 ` Robin Holt
2008-04-22 23:07 ` Robin Holt
2008-04-22 23:07 ` Robin Holt
2008-04-23 0:28 ` Jack Steiner
2008-04-23 0:28 ` Jack Steiner
2008-04-23 0:28 ` [ofa-general] " Jack Steiner
2008-04-23 16:37 ` Andrea Arcangeli
2008-04-23 16:37 ` Andrea Arcangeli
2008-04-23 16:37 ` [ofa-general] " Andrea Arcangeli
2008-04-23 18:19 ` Christoph Lameter
2008-04-23 18:19 ` Christoph Lameter
2008-04-23 18:19 ` [ofa-general] " Christoph Lameter
2008-04-23 18:25 ` Andrea Arcangeli
2008-04-23 18:25 ` Andrea Arcangeli
2008-04-23 18:25 ` [ofa-general] " Andrea Arcangeli
2008-04-23 22:19 ` Andrea Arcangeli
2008-04-23 22:19 ` Andrea Arcangeli
2008-04-23 22:19 ` [ofa-general] " Andrea Arcangeli
2008-04-24 6:49 ` Andrea Arcangeli
2008-04-24 6:49 ` Andrea Arcangeli
2008-04-24 6:49 ` Andrea Arcangeli
2008-04-24 9:51 ` Robin Holt
2008-04-24 9:51 ` Robin Holt
2008-04-24 9:51 ` [ofa-general] " Robin Holt
2008-04-24 15:39 ` Andrea Arcangeli
2008-04-24 15:39 ` Andrea Arcangeli
2008-04-24 15:39 ` [ofa-general] " Andrea Arcangeli
2008-04-24 17:41 ` Andrea Arcangeli
2008-04-24 17:41 ` Andrea Arcangeli
2008-04-24 17:41 ` [ofa-general] " Andrea Arcangeli
2008-04-26 13:17 ` Robin Holt
2008-04-26 13:17 ` Robin Holt
2008-04-26 13:17 ` Robin Holt
2008-04-26 14:04 ` Andrea Arcangeli [this message]
2008-04-26 14:04 ` Andrea Arcangeli
2008-04-26 14:04 ` Andrea Arcangeli
2008-04-27 12:27 ` Andrea Arcangeli
2008-04-27 12:27 ` Andrea Arcangeli
2008-04-27 12:27 ` Andrea Arcangeli
2008-04-28 20:34 ` Christoph Lameter
2008-04-28 20:34 ` Christoph Lameter
2008-04-28 20:34 ` [ofa-general] " Christoph Lameter
2008-04-29 0:10 ` Andrea Arcangeli
2008-04-29 0:10 ` Andrea Arcangeli
2008-04-29 0:10 ` Andrea Arcangeli
2008-04-29 1:28 ` Christoph Lameter
2008-04-29 1:28 ` Christoph Lameter
2008-04-29 1:28 ` Christoph Lameter
2008-04-29 15:30 ` Andrea Arcangeli
2008-04-29 15:30 ` Andrea Arcangeli
2008-04-29 15:30 ` [ofa-general] " Andrea Arcangeli
2008-04-29 15:50 ` Robin Holt
2008-04-29 15:50 ` Robin Holt
2008-04-29 15:50 ` [ofa-general] " Robin Holt
2008-04-29 16:03 ` Andrea Arcangeli
2008-04-29 16:03 ` Andrea Arcangeli
2008-04-29 16:03 ` [ofa-general] " Andrea Arcangeli
2008-05-07 15:00 ` Andrea Arcangeli
2008-05-07 15:00 ` Andrea Arcangeli
2008-05-07 15:00 ` [ofa-general] " Andrea Arcangeli
2008-04-29 10:49 ` Hugh Dickins
2008-04-29 10:49 ` Hugh Dickins
2008-04-29 10:49 ` [ofa-general] " Hugh Dickins
2008-04-29 13:32 ` Andrea Arcangeli
2008-04-29 13:32 ` Andrea Arcangeli
2008-04-23 13:36 ` Andrea Arcangeli
2008-04-23 13:36 ` Andrea Arcangeli
2008-04-23 13:36 ` [ofa-general] " Andrea Arcangeli
2008-04-23 14:47 ` Robin Holt
2008-04-23 14:47 ` Robin Holt
2008-04-23 14:47 ` [ofa-general] " Robin Holt
2008-04-23 15:59 ` Andrea Arcangeli
2008-04-23 15:59 ` Andrea Arcangeli
2008-04-23 15:59 ` [ofa-general] " Andrea Arcangeli
2008-04-23 18:09 ` Christoph Lameter
2008-04-23 18:09 ` Christoph Lameter
2008-04-23 18:09 ` [ofa-general] " Christoph Lameter
2008-04-23 18:19 ` Andrea Arcangeli
2008-04-23 18:19 ` Andrea Arcangeli
2008-04-23 18:19 ` [ofa-general] " Andrea Arcangeli
2008-04-23 18:27 ` Christoph Lameter
2008-04-23 18:27 ` Christoph Lameter
2008-04-23 18:27 ` [ofa-general] " Christoph Lameter
2008-04-23 18:37 ` Andrea Arcangeli
2008-04-23 18:37 ` Andrea Arcangeli
2008-04-23 18:37 ` [ofa-general] " Andrea Arcangeli
2008-04-23 18:46 ` Christoph Lameter
2008-04-23 18:46 ` Christoph Lameter
2008-04-23 18:46 ` [ofa-general] " Christoph Lameter
2008-04-22 23:20 ` Christoph Lameter
2008-04-22 23:20 ` Christoph Lameter
2008-04-22 23:20 ` [ofa-general] " Christoph Lameter
2008-04-23 16:26 ` Andrea Arcangeli
2008-04-23 16:26 ` Andrea Arcangeli
2008-04-23 16:26 ` [ofa-general] " Andrea Arcangeli
2008-04-23 17:24 ` Andrea Arcangeli
2008-04-23 17:24 ` Andrea Arcangeli
2008-04-23 18:21 ` Christoph Lameter
2008-04-23 18:21 ` Christoph Lameter
2008-04-23 18:21 ` [ofa-general] " Christoph Lameter
2008-04-23 18:34 ` Andrea Arcangeli
2008-04-23 18:34 ` Andrea Arcangeli
2008-04-23 18:15 ` Christoph Lameter
2008-04-23 18:15 ` Christoph Lameter
2008-04-23 18:15 ` [ofa-general] " Christoph Lameter
2008-04-23 17:09 ` Jack Steiner
2008-04-23 17:09 ` Jack Steiner
2008-04-23 17:09 ` [ofa-general] " Jack Steiner
2008-04-23 17:45 ` Andrea Arcangeli
2008-04-23 17:45 ` Andrea Arcangeli
2008-04-23 17:45 ` [ofa-general] " Andrea Arcangeli
2008-04-22 13:51 ` [PATCH 02 of 12] Fix ia64 compilation failure because of common code include bug Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` [ofa-general] " Andrea Arcangeli
2008-04-22 20:22 ` Christoph Lameter
2008-04-22 20:22 ` Christoph Lameter
2008-04-22 20:22 ` Christoph Lameter
2008-04-22 22:43 ` Andrea Arcangeli
2008-04-22 22:43 ` Andrea Arcangeli
2008-04-22 22:43 ` [ofa-general] " Andrea Arcangeli
2008-04-22 23:07 ` Robin Holt
2008-04-22 23:07 ` Robin Holt
2008-04-22 23:07 ` [ofa-general] " Robin Holt
2008-04-22 13:51 ` [PATCH 03 of 12] get_task_mm should not succeed if mmput() is running and has reduced Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 20:23 ` Christoph Lameter
2008-04-22 20:23 ` Christoph Lameter
2008-04-22 20:23 ` [ofa-general] " Christoph Lameter
2008-04-22 22:37 ` Andrea Arcangeli
2008-04-22 22:37 ` Andrea Arcangeli
2008-04-22 22:37 ` [ofa-general] " Andrea Arcangeli
2008-04-22 23:13 ` Christoph Lameter
2008-04-22 23:13 ` Christoph Lameter
2008-04-22 23:13 ` [ofa-general] " Christoph Lameter
2008-04-22 13:51 ` [PATCH 04 of 12] Moves all mmu notifier methods outside the PT lock (first and not last Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 20:24 ` Christoph Lameter
2008-04-22 20:24 ` Christoph Lameter
2008-04-22 20:24 ` Christoph Lameter
2008-04-22 22:40 ` Andrea Arcangeli
2008-04-22 22:40 ` Andrea Arcangeli
2008-04-22 22:40 ` [ofa-general] " Andrea Arcangeli
2008-04-22 23:14 ` Christoph Lameter
2008-04-22 23:14 ` Christoph Lameter
2008-04-22 23:14 ` Christoph Lameter
2008-04-23 13:44 ` Andrea Arcangeli
2008-04-23 13:44 ` Andrea Arcangeli
2008-04-23 13:44 ` [ofa-general] " Andrea Arcangeli
2008-04-23 15:45 ` Robin Holt
2008-04-23 15:45 ` Robin Holt
2008-04-23 15:45 ` [ofa-general] " Robin Holt
2008-04-23 16:15 ` Andrea Arcangeli
2008-04-23 16:15 ` Andrea Arcangeli
2008-04-23 16:15 ` [ofa-general] " Andrea Arcangeli
2008-04-23 19:55 ` Robin Holt
2008-04-23 19:55 ` Robin Holt
2008-04-23 19:55 ` [ofa-general] " Robin Holt
2008-04-23 21:05 ` Avi Kivity
2008-04-23 21:05 ` Avi Kivity
2008-04-23 21:05 ` [ofa-general] " Avi Kivity
2008-04-23 18:02 ` Christoph Lameter
2008-04-23 18:02 ` Christoph Lameter
2008-04-23 18:02 ` [ofa-general] " Christoph Lameter
2008-04-23 18:16 ` Andrea Arcangeli
2008-04-23 18:16 ` Andrea Arcangeli
2008-04-23 18:16 ` [ofa-general] " Andrea Arcangeli
2008-04-22 13:51 ` [PATCH 05 of 12] Move the tlb flushing into free_pgtables. The conversion of the locks Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 20:25 ` Christoph Lameter
2008-04-22 20:25 ` Christoph Lameter
2008-04-22 20:25 ` [ofa-general] " Christoph Lameter
2008-04-22 13:51 ` [PATCH 06 of 12] Move the tlb flushing inside of unmap vmas. This saves us from passing Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` [PATCH 07 of 12] Add a function to rw_semaphores to check if there are any processes Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` [PATCH 08 of 12] The conversion to a rwsem allows notifier callbacks during rmap traversal Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` [PATCH 09 of 12] Convert the anon_vma spinlock to a rw semaphore. This allows concurrent Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` [PATCH 10 of 12] Convert mm_lock to use semaphores after i_mmap_lock and anon_vma_lock Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 20:26 ` Christoph Lameter
2008-04-22 20:26 ` Christoph Lameter
2008-04-22 22:54 ` Andrea Arcangeli
2008-04-22 22:54 ` Andrea Arcangeli
2008-04-22 22:54 ` [ofa-general] " Andrea Arcangeli
2008-04-22 23:19 ` Christoph Lameter
2008-04-22 23:19 ` Christoph Lameter
2008-04-22 23:19 ` [ofa-general] " Christoph Lameter
2008-04-22 13:51 ` [PATCH 11 of 12] XPMEM would have used sys_madvise() except that madvise_dontneed() Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` [PATCH 12 of 12] This patch adds a lock ordering rule to avoid a potential deadlock when Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 13:51 ` Andrea Arcangeli
2008-04-22 18:22 ` [PATCH 00 of 12] mmu notifier #v13 Robin Holt
2008-04-22 18:22 ` Robin Holt
2008-04-22 18:22 ` Robin Holt
2008-04-22 18:43 ` Andrea Arcangeli
2008-04-22 18:43 ` Andrea Arcangeli
2008-04-22 19:42 ` Robin Holt
2008-04-22 19:42 ` Robin Holt
2008-04-22 19:42 ` [ofa-general] " Robin Holt
2008-04-22 20:30 ` Christoph Lameter
2008-04-22 20:30 ` Christoph Lameter
2008-04-22 20:30 ` [ofa-general] " Christoph Lameter
2008-04-23 13:33 ` Andrea Arcangeli
2008-04-23 13:33 ` Andrea Arcangeli
2008-04-23 13:33 ` [ofa-general] " Andrea Arcangeli
2008-04-22 20:28 ` Christoph Lameter
2008-04-22 20:28 ` Christoph Lameter
2008-04-22 20:28 ` [ofa-general] " Christoph Lameter
2008-04-23 0:31 ` Jack Steiner
2008-04-23 0:31 ` Jack Steiner
2008-04-23 0:31 ` [ofa-general] " Jack Steiner
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=20080426140406.GH9514@duo.random \
--to=andrea@qumranet.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=avi@qumranet.com \
--cc=clameter@sgi.com \
--cc=general@lists.openfabrics.org \
--cc=holt@sgi.com \
--cc=hugh@veritas.com \
--cc=kanojsarcar@yahoo.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=npiggin@suse.de \
--cc=rdreier@cisco.com \
--cc=rusty@rustcorp.com.au \
--cc=steiner@sgi.com \
--cc=swise@opengridcomputing.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: link
Be 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.