From: Christoph Lameter <clameter@sgi.com>
To: William Lee Irwin III <wli@holomorphy.com>
Cc: Hugh Dickins <hugh@veritas.com>,
Nick Piggin <nickpiggin@yahoo.com.au>,
Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
linux-mm@kvack.org, linux-ia64@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: page fault scalability patch V13 [7/8]: Split RSS
Date: Thu, 16 Dec 2004 19:38:23 -0800 (PST) [thread overview]
Message-ID: <Pine.LNX.4.58.0412161937480.11341@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0412161931460.11341@schroedinger.engr.sgi.com>
Changelog
* Split rss counter into the task structure
* remove 3 checks of rss in mm/rmap.c
* increment current->rss instead of mm->rss in the page fault handler
* move incrementing of anon_rss out of page_add_anon_rmap to group
the increments more tightly and allow a better cache utilization
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Index: linux-2.6.9/include/linux/sched.h
===================================================================
--- linux-2.6.9.orig/include/linux/sched.h 2004-11-30 20:33:31.000000000 -0800
+++ linux-2.6.9/include/linux/sched.h 2004-11-30 20:33:50.000000000 -0800
@@ -30,6 +30,7 @@
#include <linux/pid.h>
#include <linux/percpu.h>
#include <linux/topology.h>
+#include <linux/rcupdate.h>
struct exec_domain;
@@ -217,6 +218,7 @@
int map_count; /* number of VMAs */
struct rw_semaphore mmap_sem;
spinlock_t page_table_lock; /* Protects page tables, mm->rss, mm->anon_rss */
+ long rss, anon_rss;
struct list_head mmlist; /* List of maybe swapped mm's. These are globally strung
* together off init_mm.mmlist, and are protected
@@ -226,7 +228,7 @@
unsigned long start_code, end_code, start_data, end_data;
unsigned long start_brk, brk, start_stack;
unsigned long arg_start, arg_end, env_start, env_end;
- unsigned long rss, anon_rss, total_vm, locked_vm, shared_vm;
+ unsigned long total_vm, locked_vm, shared_vm;
unsigned long exec_vm, stack_vm, reserved_vm, def_flags, nr_ptes;
unsigned long saved_auxv[42]; /* for /proc/PID/auxv */
@@ -236,6 +238,8 @@
/* Architecture-specific MM context */
mm_context_t context;
+ struct list_head task_list; /* Tasks using this mm */
+ struct rcu_head rcu_head; /* For freeing mm via rcu */
/* Token based thrashing protection. */
unsigned long swap_token_time;
@@ -545,6 +549,9 @@
struct list_head ptrace_list;
struct mm_struct *mm, *active_mm;
+ /* Split counters from mm */
+ long rss;
+ long anon_rss;
/* task state */
struct linux_binfmt *binfmt;
@@ -578,6 +585,9 @@
struct completion *vfork_done; /* for vfork() */
int __user *set_child_tid; /* CLONE_CHILD_SETTID */
int __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
+
+ /* List of other tasks using the same mm */
+ struct list_head mm_tasks;
unsigned long rt_priority;
unsigned long it_real_value, it_prof_value, it_virt_value;
@@ -1111,6 +1121,14 @@
#endif
+unsigned long get_rss(struct mm_struct *mm);
+unsigned long get_anon_rss(struct mm_struct *mm);
+unsigned long get_shared(struct mm_struct *mm);
+
+void mm_remove_thread(struct mm_struct *mm, struct task_struct *tsk);
+void mm_add_thread(struct mm_struct *mm, struct task_struct *tsk);
+
#endif /* __KERNEL__ */
#endif
+
Index: linux-2.6.9/fs/proc/task_mmu.c
===================================================================
--- linux-2.6.9.orig/fs/proc/task_mmu.c 2004-11-30 20:33:26.000000000 -0800
+++ linux-2.6.9/fs/proc/task_mmu.c 2004-11-30 20:33:50.000000000 -0800
@@ -22,7 +22,7 @@
"VmPTE:\t%8lu kB\n",
(mm->total_vm - mm->reserved_vm) << (PAGE_SHIFT-10),
mm->locked_vm << (PAGE_SHIFT-10),
- mm->rss << (PAGE_SHIFT-10),
+ get_rss(mm) << (PAGE_SHIFT-10),
data << (PAGE_SHIFT-10),
mm->stack_vm << (PAGE_SHIFT-10), text, lib,
(PTRS_PER_PTE*sizeof(pte_t)*mm->nr_ptes) >> 10);
@@ -37,7 +37,7 @@
int task_statm(struct mm_struct *mm, int *shared, int *text,
int *data, int *resident)
{
- *shared = mm->rss - mm->anon_rss;
+ *shared = get_shared(mm);
*text = (PAGE_ALIGN(mm->end_code) - (mm->start_code & PAGE_MASK))
>> PAGE_SHIFT;
*data = mm->total_vm - mm->shared_vm;
Index: linux-2.6.9/fs/proc/array.c
===================================================================
--- linux-2.6.9.orig/fs/proc/array.c 2004-11-30 20:33:26.000000000 -0800
+++ linux-2.6.9/fs/proc/array.c 2004-11-30 20:33:50.000000000 -0800
@@ -420,7 +420,7 @@
jiffies_to_clock_t(task->it_real_value),
start_time,
vsize,
- mm ? mm->rss : 0, /* you might want to shift this left 3 */
+ mm ? get_rss(mm) : 0, /* you might want to shift this left 3 */
rsslim,
mm ? mm->start_code : 0,
mm ? mm->end_code : 0,
Index: linux-2.6.9/mm/rmap.c
===================================================================
--- linux-2.6.9.orig/mm/rmap.c 2004-11-30 20:33:46.000000000 -0800
+++ linux-2.6.9/mm/rmap.c 2004-11-30 20:33:50.000000000 -0800
@@ -263,8 +263,6 @@
pte_t *pte;
int referenced = 0;
- if (!mm->rss)
- goto out;
address = vma_address(page, vma);
if (address == -EFAULT)
goto out;
@@ -438,7 +436,7 @@
BUG_ON(PageReserved(page));
BUG_ON(!anon_vma);
- vma->vm_mm->anon_rss++;
+ current->anon_rss++;
anon_vma = (void *) anon_vma + PAGE_MAPPING_ANON;
index = (address - vma->vm_start) >> PAGE_SHIFT;
@@ -510,8 +508,6 @@
pte_t pteval;
int ret = SWAP_AGAIN;
- if (!mm->rss)
- goto out;
address = vma_address(page, vma);
if (address == -EFAULT)
goto out;
@@ -799,8 +795,7 @@
if (vma->vm_flags & (VM_LOCKED|VM_RESERVED))
continue;
cursor = (unsigned long) vma->vm_private_data;
- while (vma->vm_mm->rss &&
- cursor < max_nl_cursor &&
+ while (cursor < max_nl_cursor &&
cursor < vma->vm_end - vma->vm_start) {
try_to_unmap_cluster(cursor, &mapcount, vma);
cursor += CLUSTER_SIZE;
Index: linux-2.6.9/kernel/fork.c
===================================================================
--- linux-2.6.9.orig/kernel/fork.c 2004-11-30 20:33:42.000000000 -0800
+++ linux-2.6.9/kernel/fork.c 2004-11-30 20:33:50.000000000 -0800
@@ -151,6 +151,7 @@
*tsk = *orig;
tsk->thread_info = ti;
ti->task = tsk;
+ tsk->rss = 0;
/* One for us, one for whoever does the "release_task()" (usually parent) */
atomic_set(&tsk->usage,2);
@@ -292,6 +293,7 @@
atomic_set(&mm->mm_count, 1);
init_rwsem(&mm->mmap_sem);
INIT_LIST_HEAD(&mm->mmlist);
+ INIT_LIST_HEAD(&mm->task_list);
mm->core_waiters = 0;
mm->nr_ptes = 0;
spin_lock_init(&mm->page_table_lock);
@@ -323,6 +325,13 @@
return mm;
}
+static void rcu_free_mm(struct rcu_head *head)
+{
+ struct mm_struct *mm = container_of(head ,struct mm_struct, rcu_head);
+
+ free_mm(mm);
+}
+
/*
* Called when the last reference to the mm
* is dropped: either by a lazy thread or by
@@ -333,7 +342,7 @@
BUG_ON(mm == &init_mm);
mm_free_pgd(mm);
destroy_context(mm);
- free_mm(mm);
+ call_rcu(&mm->rcu_head, rcu_free_mm);
}
/*
@@ -400,6 +409,8 @@
/* Get rid of any cached register state */
deactivate_mm(tsk, mm);
+ if (mm)
+ mm_remove_thread(mm, tsk);
/* notify parent sleeping on vfork() */
if (vfork_done) {
@@ -447,8 +458,8 @@
* new threads start up in user mode using an mm, which
* allows optimizing out ipis; the tlb_gather_mmu code
* is an example.
+ * (mm_add_thread does use the ptl .... )
*/
- spin_unlock_wait(&oldmm->page_table_lock);
goto good_mm;
}
@@ -470,6 +481,7 @@
goto free_pt;
good_mm:
+ mm_add_thread(mm, tsk);
tsk->mm = mm;
tsk->active_mm = mm;
return 0;
Index: linux-2.6.9/mm/memory.c
===================================================================
--- linux-2.6.9.orig/mm/memory.c 2004-11-30 20:33:46.000000000 -0800
+++ linux-2.6.9/mm/memory.c 2004-11-30 20:33:50.000000000 -0800
@@ -1467,7 +1467,7 @@
*/
lru_cache_add_active(page);
page_add_anon_rmap(page, vma, addr);
- mm->rss++;
+ current->rss++;
}
pte_unmap(page_table);
@@ -1859,3 +1859,87 @@
}
#endif
+
+unsigned long get_rss(struct mm_struct *mm)
+{
+ struct list_head *y;
+ struct task_struct *t;
+ long rss;
+
+ if (!mm)
+ return 0;
+
+ rcu_read_lock();
+ rss = mm->rss;
+ list_for_each_rcu(y, &mm->task_list) {
+ t = list_entry(y, struct task_struct, mm_tasks);
+ rss += t->rss;
+ }
+ if (rss < 0)
+ rss = 0;
+ rcu_read_unlock();
+ return rss;
+}
+
+unsigned long get_anon_rss(struct mm_struct *mm)
+{
+ struct list_head *y;
+ struct task_struct *t;
+ long rss;
+
+ if (!mm)
+ return 0;
+
+ rcu_read_lock();
+ rss = mm->anon_rss;
+ list_for_each_rcu(y, &mm->task_list) {
+ t = list_entry(y, struct task_struct, mm_tasks);
+ rss += t->anon_rss;
+ }
+ if (rss < 0)
+ rss = 0;
+ rcu_read_unlock();
+ return rss;
+}
+
+unsigned long get_shared(struct mm_struct *mm)
+{
+ struct list_head *y;
+ struct task_struct *t;
+ long rss;
+
+ if (!mm)
+ return 0;
+
+ rcu_read_lock();
+ rss = mm->rss - mm->anon_rss;
+ list_for_each_rcu(y, &mm->task_list) {
+ t = list_entry(y, struct task_struct, mm_tasks);
+ rss += t->rss - t->anon_rss;
+ }
+ if (rss < 0)
+ rss = 0;
+ rcu_read_unlock();
+ return rss;
+}
+
+void mm_remove_thread(struct mm_struct *mm, struct task_struct *tsk)
+{
+ if (!mm)
+ return;
+
+ spin_lock(&mm->page_table_lock);
+ mm->rss += tsk->rss;
+ mm->anon_rss += tsk->anon_rss;
+ list_del_rcu(&tsk->mm_tasks);
+ spin_unlock(&mm->page_table_lock);
+}
+
+void mm_add_thread(struct mm_struct *mm, struct task_struct *tsk)
+{
+ spin_lock(&mm->page_table_lock);
+ list_add_rcu(&tsk->mm_tasks, &mm->task_list);
+ spin_unlock(&mm->page_table_lock);
+}
+
+
Index: linux-2.6.9/include/linux/init_task.h
===================================================================
--- linux-2.6.9.orig/include/linux/init_task.h 2004-11-30 20:33:30.000000000 -0800
+++ linux-2.6.9/include/linux/init_task.h 2004-11-30 20:33:50.000000000 -0800
@@ -42,6 +42,7 @@
.mmlist = LIST_HEAD_INIT(name.mmlist), \
.cpu_vm_mask = CPU_MASK_ALL, \
.default_kioctx = INIT_KIOCTX(name.default_kioctx, name), \
+ .task_list = LIST_HEAD_INIT(name.task_list), \
}
#define INIT_SIGNALS(sig) { \
@@ -112,6 +113,7 @@
.proc_lock = SPIN_LOCK_UNLOCKED, \
.switch_lock = SPIN_LOCK_UNLOCKED, \
.journal_info = NULL, \
+ .mm_tasks = LIST_HEAD_INIT(tsk.mm_tasks), \
}
Index: linux-2.6.9/fs/exec.c
===================================================================
--- linux-2.6.9.orig/fs/exec.c 2004-11-30 20:33:41.000000000 -0800
+++ linux-2.6.9/fs/exec.c 2004-11-30 20:33:50.000000000 -0800
@@ -543,6 +543,7 @@
active_mm = tsk->active_mm;
tsk->mm = mm;
tsk->active_mm = mm;
+ mm_add_thread(mm, current);
activate_mm(active_mm, mm);
task_unlock(tsk);
arch_pick_mmap_layout(mm);
next prev parent reply other threads:[~2004-12-17 3:53 UTC|newest]
Thread overview: 286+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <Pine.LNX.4.44.0411061527440.3567-100000@localhost.localdomain>
[not found] ` <Pine.LNX.4.58.0411181126440.30385@schroedinger.engr.sgi.com>
[not found] ` <Pine.LNX.4.58.0411181715280.834@schroedinger.engr.sgi.com>
[not found] ` <419D581F.2080302@yahoo.com.au>
[not found] ` <Pine.LNX.4.58.0411181835540.1421@schroedinger.engr.sgi.com>
[not found] ` <419D5E09.20805@yahoo.com.au>
[not found] ` <Pine.LNX.4.58.0411181921001.1674@schroedinger.engr.sgi.com>
[not found] ` <1100848068.25520.49.camel@gaston>
2004-11-19 19:42 ` page fault scalability patch V11 [0/7]: overview Christoph Lameter
2004-11-19 19:43 ` page fault scalability patch V11 [1/7]: sloppy rss Christoph Lameter
2004-11-19 20:50 ` Hugh Dickins
2004-11-20 1:29 ` Christoph Lameter
2004-11-22 15:00 ` Hugh Dickins
2004-11-22 21:50 ` deferred rss update instead of " Christoph Lameter
2004-11-22 22:11 ` Andrew Morton
2004-11-22 22:13 ` Christoph Lameter
2004-11-22 22:17 ` Benjamin Herrenschmidt
2004-11-22 22:45 ` Andrew Morton
2004-11-22 22:48 ` Christoph Lameter
2004-11-22 23:09 ` Nick Piggin
2004-11-22 23:13 ` Christoph Lameter
2004-11-22 23:16 ` Andrew Morton
2004-11-22 23:19 ` Christoph Lameter
2004-11-22 22:22 ` Linus Torvalds
2004-11-22 22:27 ` Christoph Lameter
2004-11-22 22:40 ` Linus Torvalds
2004-12-01 23:41 ` page fault scalability patch V12 [0/7]: Overview and performance tests Christoph Lameter
2004-12-01 23:42 ` page fault scalability patch V12 [1/7]: Reduce use of thepage_table_lock Christoph Lameter
2004-12-01 23:42 ` page fault scalability patch V12 [2/7]: atomic pte operations for ia64 Christoph Lameter
2004-12-01 23:43 ` page fault scalability patch V12 [3/7]: universal cmpxchg for i386 Christoph Lameter
2004-12-01 23:43 ` page fault scalability patch V12 [4/7]: atomic pte operations " Christoph Lameter
2004-12-01 23:44 ` page fault scalability patch V12 [5/7]: atomic pte operations for x86_64 Christoph Lameter
2004-12-01 23:45 ` page fault scalability patch V12 [6/7]: atomic pte operations for s390 Christoph Lameter
2004-12-01 23:45 ` page fault scalability patch V12 [7/7]: Split counter for rss Christoph Lameter
2005-01-04 19:35 ` page fault scalability patch V14 [0/7]: Overview Christoph Lameter
2005-01-04 19:35 ` page fault scalability patch V14 [1/7]: Avoid taking page_table_lock Christoph Lameter
2005-01-04 19:36 ` page fault scalability patch V14 [2/7]: ia64 atomic pte operations Christoph Lameter
2005-01-04 19:37 ` page fault scalability patch V14 [3/7]: i386 universal cmpxchg Christoph Lameter
2005-01-05 11:51 ` Roman Zippel
2005-01-04 19:37 ` page fault scalability patch V14 [4/7]: i386 atomic pte operations Christoph Lameter
2005-01-04 19:38 ` page fault scalability patch V14 [5/7]: x86_64 " Christoph Lameter
2005-01-04 19:46 ` Andi Kleen
2005-01-04 19:58 ` Christoph Lameter
2005-01-04 20:21 ` Andi Kleen
2005-01-04 20:32 ` Christoph Lameter
2005-01-11 17:39 ` page table lock patch V15 [0/7]: overview Christoph Lameter
2005-01-11 17:40 ` page table lock patch V15 [1/7]: Reduce use of page table lock Christoph Lameter
2005-01-11 17:41 ` page table lock patch V15 [2/7]: ia64 atomic pte operations Christoph Lameter
2005-01-11 17:41 ` page table lock patch V15 [3/7]: i386 universal cmpxchg Christoph Lameter
2005-01-11 17:42 ` page table lock patch V15 [4/7]: i386 atomic pte operations Christoph Lameter
2005-01-11 17:43 ` page table lock patch V15 [5/7]: x86_64 " Christoph Lameter
2005-01-11 17:43 ` page table lock patch V15 [6/7]: s390 " Christoph Lameter
2005-01-11 17:44 ` page table lock patch V15 [7/7]: Split RSS counter Christoph Lameter
2005-01-12 5:59 ` page table lock patch V15 [0/7]: overview Nick Piggin
2005-01-12 9:42 ` Andrew Morton
2005-01-12 12:29 ` Marcelo Tosatti
2005-01-12 12:43 ` Hugh Dickins
2005-01-12 21:22 ` Hugh Dickins
2005-01-12 23:52 ` Christoph Lameter
2005-01-13 2:52 ` Hugh Dickins
2005-01-13 17:05 ` Christoph Lameter
2005-01-12 16:39 ` Christoph Lameter
2005-01-12 16:49 ` Christoph Hellwig
2005-01-12 17:37 ` Christoph Lameter
2005-01-12 17:41 ` Christoph Hellwig
2005-01-12 17:52 ` Christoph Lameter
2005-01-12 18:04 ` Christoph Hellwig
2005-01-12 18:20 ` Andrew Walrond
2005-01-12 18:43 ` Andrew Morton
2005-01-12 19:06 ` Christoph Lameter
2005-01-14 3:39 ` Roman Zippel
2005-01-14 4:14 ` Andi Kleen
2005-01-14 12:02 ` Roman Zippel
2005-01-12 23:16 ` Nick Piggin
2005-01-12 23:30 ` Andrew Morton
2005-01-12 23:50 ` Nick Piggin
2005-01-12 23:54 ` Christoph Lameter
2005-01-13 0:10 ` Nick Piggin
2005-01-13 0:16 ` Christoph Lameter
2005-01-13 0:42 ` Nick Piggin
2005-01-13 22:19 ` Peter Chubb
2005-01-13 3:18 ` Andi Kleen
2005-01-13 17:11 ` Christoph Lameter
2005-01-13 17:25 ` Linus Torvalds
2005-01-13 18:02 ` Andi Kleen
2005-01-13 18:16 ` Christoph Lameter
2005-01-13 20:17 ` Andi Kleen
2005-01-14 1:09 ` Christoph Lameter
2005-01-14 4:39 ` Andi Kleen
2005-01-14 4:52 ` page table lock patch V15 [0/7]: overview II Andi Kleen
2005-01-14 4:59 ` Nick Piggin
2005-01-14 10:47 ` Andi Kleen
2005-01-14 10:57 ` Nick Piggin
2005-01-14 11:11 ` Andi Kleen
2005-01-14 16:57 ` Christoph Lameter
2005-01-14 4:54 ` page table lock patch V15 [0/7]: overview Nick Piggin
2005-01-14 10:46 ` Andi Kleen
2005-01-14 16:52 ` Christoph Lameter
2005-01-14 17:01 ` Andi Kleen
2005-01-14 17:08 ` Christoph Lameter
2005-01-14 17:11 ` Andi Kleen
2005-01-14 17:43 ` Linus Torvalds
2005-01-28 20:35 ` page fault scalability patch V16 [0/4]: redesign overview Christoph Lameter
2005-01-28 20:36 ` page fault scalability patch V16 [1/4]: avoid intermittent clearing of ptes Christoph Lameter
2005-01-28 20:36 ` page fault scalability patch V16 [2/4]: mm counter macros Christoph Lameter
2005-01-28 20:37 ` page fault scalability patch V16 [3/4]: Drop page_table_lock in handle_mm_fault Christoph Lameter
2005-02-01 4:08 ` Nick Piggin
2005-02-01 18:47 ` Christoph Lameter
2005-02-01 19:01 ` Christoph Lameter
2005-02-02 0:31 ` Nick Piggin
2005-02-02 1:20 ` Christoph Lameter
2005-02-02 1:41 ` Nick Piggin
2005-02-02 2:49 ` Christoph Lameter
2005-02-02 3:09 ` Nick Piggin
2005-02-04 6:27 ` Nick Piggin
2005-02-17 0:57 ` page fault scalability patchsets update: prezeroing, prefaulting and atomic operations Christoph Lameter
2005-02-24 6:04 ` A Proposal for an MMU abstraction layer Christoph Lameter
2005-02-01 4:16 ` page fault scalability patch V16 [3/4]: Drop page_table_lock in handle_mm_fault Nick Piggin
2005-02-01 8:20 ` Kernel 2.4.21 hangs up baswaraj kasture
2005-02-01 8:35 ` Arjan van de Ven
2005-02-01 9:03 ` Christian Hildner
2005-02-07 6:14 ` Kernel 2.4.21 gives kernel panic at boot time baswaraj kasture
2005-02-01 17:46 ` Kernel 2.4.21 hangs up David Mosberger
2005-02-01 17:54 ` Markus Trippelsdorf
2005-02-01 18:08 ` David Mosberger
2005-02-01 18:44 ` page fault scalability patch V16 [3/4]: Drop page_table_lock in handle_mm_fault Christoph Lameter
2005-01-28 20:38 ` page fault scalability patch V16 [4/4]: Drop page_table_lock in do_anonymous_page Christoph Lameter
2005-01-13 3:09 ` page table lock patch V15 [0/7]: overview Hugh Dickins
2005-01-13 3:46 ` Nick Piggin
2005-01-13 17:14 ` Christoph Lameter
2005-01-04 21:21 ` page fault scalability patch V14 [5/7]: x86_64 atomic pte operations Brian Gerst
2005-01-04 21:26 ` Christoph Lameter
2005-01-04 19:38 ` page fault scalability patch V14 [6/7]: s390 atomic pte operationsw Christoph Lameter
2005-01-04 19:39 ` page fault scalability patch V14 [7/7]: Split RSS counters Christoph Lameter
2004-12-02 0:10 ` page fault scalability patch V12 [0/7]: Overview and performance tests Linus Torvalds
2004-12-02 0:55 ` Andrew Morton
2004-12-02 1:46 ` Christoph Lameter
2004-12-02 6:21 ` Jeff Garzik
2004-12-02 6:34 ` Andrew Morton
2004-12-02 6:48 ` Jeff Garzik
2004-12-02 7:02 ` Andrew Morton
2004-12-02 7:26 ` Martin J. Bligh
2004-12-02 7:31 ` Jeff Garzik
2004-12-02 18:10 ` cliff white
2004-12-02 18:17 ` Gerrit Huizenga
2004-12-02 20:25 ` linux-os
2004-12-08 17:24 ` Anticipatory prefaulting in the page fault handler V1 Christoph Lameter
2004-12-08 17:33 ` Jesse Barnes
2004-12-08 17:56 ` Christoph Lameter
2004-12-08 18:33 ` Jesse Barnes
2004-12-08 21:26 ` David S. Miller
2004-12-08 21:42 ` Linus Torvalds
2004-12-08 17:55 ` Dave Hansen
2004-12-08 19:07 ` Martin J. Bligh
2004-12-08 22:50 ` Martin J. Bligh
2004-12-09 19:32 ` Christoph Lameter
2004-12-10 2:13 ` [OT:HUMOR] " Adam Heath
2004-12-13 14:30 ` Akinobu Mita
2004-12-13 17:10 ` Christoph Lameter
2004-12-13 22:16 ` Martin J. Bligh
2004-12-14 1:32 ` Anticipatory prefaulting in the page fault handler V2 Christoph Lameter
2004-12-14 19:31 ` Adam Litke
2004-12-15 19:03 ` Anticipatory prefaulting in the page fault handler V3 Christoph Lameter
2005-01-05 0:29 ` Anticipatory prefaulting in the page fault handler V4 Christoph Lameter
2004-12-14 12:24 ` Anticipatory prefaulting in the page fault handler V1 Akinobu Mita
2004-12-14 15:25 ` Akinobu Mita
2004-12-14 20:25 ` Christoph Lameter
2004-12-09 10:57 ` Pavel Machek
2004-12-09 11:32 ` Nick Piggin
2004-12-09 17:05 ` Christoph Lameter
2004-12-14 15:28 ` Adam Litke
2004-12-02 18:43 ` page fault scalability patch V12 [0/7]: Overview and performance tests cliff white
2004-12-06 19:33 ` Marcelo Tosatti
2004-12-02 16:24 ` Gerrit Huizenga
2004-12-02 17:34 ` cliff white
2004-12-02 19:48 ` Diego Calleja
2004-12-02 20:12 ` Jeff Garzik
2004-12-02 20:30 ` Diego Calleja
2004-12-02 21:08 ` Wichert Akkerman
2004-12-03 0:07 ` Francois Romieu
2004-12-02 7:00 ` Jeff Garzik
2004-12-02 7:05 ` Benjamin Herrenschmidt
2004-12-02 7:11 ` Jeff Garzik
2004-12-02 11:16 ` Benjamin Herrenschmidt
2004-12-02 14:30 ` Andy Warner
2005-01-06 23:40 ` Jeff Garzik
2004-12-02 18:27 ` Grant Grundler
2004-12-02 18:33 ` Andrew Morton
2004-12-02 18:36 ` Christoph Hellwig
2004-12-07 10:51 ` Pavel Machek
2004-12-09 8:00 ` Nick Piggin
2004-12-09 17:03 ` Christoph Lameter
2004-12-10 4:30 ` Nick Piggin
2004-12-09 18:37 ` Hugh Dickins
2004-12-09 22:02 ` page fault scalability patch V12: rss tasklist vs sloppy rss Christoph Lameter
2004-12-09 22:52 ` Andrew Morton
2004-12-09 22:52 ` William Lee Irwin III
2004-12-09 23:07 ` Christoph Lameter
2004-12-09 23:29 ` William Lee Irwin III
2004-12-09 23:49 ` Christoph Lameter
2004-12-10 4:26 ` page fault scalability patch V12 [0/7]: Overview and performance tests Nick Piggin
2004-12-10 4:54 ` Nick Piggin
2004-12-10 5:06 ` Benjamin Herrenschmidt
2004-12-10 5:19 ` Nick Piggin
2004-12-10 12:30 ` Hugh Dickins
2004-12-10 18:43 ` Christoph Lameter
2004-12-10 21:43 ` Hugh Dickins
2004-12-10 22:12 ` Andrew Morton
2004-12-10 23:52 ` Hugh Dickins
2004-12-11 0:18 ` Andrew Morton
2004-12-11 0:44 ` Hugh Dickins
2004-12-11 0:57 ` Andrew Morton
2004-12-11 9:23 ` Hugh Dickins
2004-12-12 7:54 ` Nick Piggin
2004-12-12 9:33 ` Hugh Dickins
2004-12-12 9:48 ` Nick Piggin
2004-12-12 21:24 ` William Lee Irwin III
2004-12-17 3:31 ` Christoph Lameter
2004-12-17 3:32 ` page fault scalability patch V13 [0/8]: Overview Christoph Lameter
2004-12-17 3:33 ` page fault scalability patch V13 [1/8]: Reduce the use of the page_table_lock Christoph Lameter
2004-12-17 3:33 ` page fault scalability patch V13 [2/8]: ia64 atomic pte operations Christoph Lameter
2004-12-17 3:34 ` page fault scalability patch V13 [3/8]: universal cmpxchg for i386 Christoph Lameter
2004-12-17 3:35 ` page fault scalability patch V13 [4/8]: atomic pte operations " Christoph Lameter
2004-12-17 3:36 ` page fault scalability patch V13 [5/8]: atomic pte operations for AMD64 Christoph Lameter
2004-12-17 3:38 ` Christoph Lameter [this message]
2004-12-17 3:39 ` page fault scalability patch V13 [8/8]: Prefaulting using ptep_cmpxchg Christoph Lameter
2004-12-17 5:55 ` page fault scalability patch V13 [0/8]: Overview Christoph Lameter
2004-12-10 20:03 ` pfault V12 : correction to tasklist rss Christoph Lameter
2004-12-10 21:24 ` Hugh Dickins
2004-12-10 21:38 ` Andrew Morton
2004-12-11 6:03 ` William Lee Irwin III
2004-11-22 22:32 ` deferred rss update instead of sloppy rss Nick Piggin
2004-11-22 22:39 ` Christoph Lameter
2004-11-22 23:14 ` Nick Piggin
2004-11-19 19:44 ` page fault scalability patch V11 [2/7]: page fault handler optimizations Christoph Lameter
2004-11-19 19:44 ` page fault scalability patch V11 [3/7]: ia64 atomic pte operations Christoph Lameter
2004-11-19 19:45 ` page fault scalability patch V11 [4/7]: universal cmpxchg for i386 Christoph Lameter
2004-11-19 19:46 ` page fault scalability patch V11 [5/7]: i386 atomic pte operations Christoph Lameter
2004-11-19 19:46 ` page fault scalability patch V11 [6/7]: x86_64 " Christoph Lameter
2004-11-19 19:47 ` page fault scalability patch V11 [7/7]: s390 " Christoph Lameter
2004-11-19 19:59 ` page fault scalability patch V11 [0/7]: overview Linus Torvalds
2004-11-20 1:07 ` Nick Piggin
2004-11-20 1:29 ` Christoph Lameter
2004-11-20 1:45 ` Nick Piggin
2004-11-20 1:58 ` Linus Torvalds
2004-11-20 2:06 ` Linus Torvalds
2004-11-20 1:56 ` Linus Torvalds
2004-11-22 18:06 ` Bill Davidsen
2004-11-20 2:03 ` William Lee Irwin III
2004-11-20 2:25 ` Nick Piggin
2004-11-20 2:41 ` William Lee Irwin III
2004-11-20 2:46 ` Nick Piggin
2004-11-20 3:37 ` Nick Piggin
2004-11-20 3:55 ` William Lee Irwin III
2004-11-20 4:03 ` Nick Piggin
2004-11-20 4:06 ` Nick Piggin
2004-11-20 4:23 ` William Lee Irwin III
2004-11-20 4:29 ` Nick Piggin
2004-11-20 5:38 ` William Lee Irwin III
2004-11-20 5:50 ` Nick Piggin
2004-11-20 6:23 ` William Lee Irwin III
2004-11-20 6:49 ` Nick Piggin
2004-11-20 6:57 ` Andrew Morton
2004-11-20 7:04 ` Andrew Morton
2004-11-20 7:13 ` Nick Piggin
2004-11-20 8:00 ` William Lee Irwin III
2004-11-20 16:59 ` Martin J. Bligh
2004-11-20 17:14 ` Linus Torvalds
2004-11-20 19:08 ` William Lee Irwin III
2004-11-20 19:16 ` Linus Torvalds
2004-11-20 19:33 ` William Lee Irwin III
2004-11-22 17:44 ` Christoph Lameter
2004-11-22 22:43 ` William Lee Irwin III
2004-11-22 22:51 ` Christoph Lameter
2004-11-23 2:25 ` William Lee Irwin III
2004-11-20 20:25 ` [OT] " Adam Heath
2004-11-20 7:15 ` William Lee Irwin III
2004-11-20 7:29 ` Nick Piggin
2004-11-20 7:45 ` touch_nmi_watchdog (was: page fault scalability patch V11 [0/7]: overview) Nick Piggin
2004-11-20 7:57 ` page fault scalability patch V11 [0/7]: overview Nick Piggin
2004-11-20 8:25 ` William Lee Irwin III
2004-11-20 2:04 ` William Lee Irwin III
2004-11-20 2:18 ` Nick Piggin
2004-11-20 2:34 ` William Lee Irwin III
2004-11-20 2:40 ` Nick Piggin
2004-11-20 3:04 ` William Lee Irwin III
2004-11-20 3:14 ` Nick Piggin
2004-11-20 3:43 ` William Lee Irwin III
2004-11-20 3:58 ` Nick Piggin
2004-11-20 4:01 ` William Lee Irwin III
2004-11-20 4:34 ` Robin Holt
2004-11-20 3:33 ` Robin Holt
2004-11-20 4:24 ` William Lee Irwin III
2004-11-20 2:06 ` Robin Holt
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=Pine.LNX.4.58.0412161937480.11341@schroedinger.engr.sgi.com \
--to=clameter@sgi.com \
--cc=akpm@osdl.org \
--cc=benh@kernel.crashing.org \
--cc=hugh@veritas.com \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nickpiggin@yahoo.com.au \
--cc=torvalds@osdl.org \
--cc=wli@holomorphy.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).