linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Hugh Dickins <hugh@veritas.com>,
	linux-mm@kvack.org, linux-ia64@kernel.vger.org
Subject: removing mm->rss and mm->anon_rss from kernel?
Date: Sat, 6 Nov 2004 01:28:16 -0800 (PST)	[thread overview]
Message-ID: <Pine.LNX.4.58.0411060120190.22874@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <418C55A7.9030100@yahoo.com.au>

My page scalability patches need to make rss atomic and now with the
addition of anon_rss I would also have to make that atomic.

But when I looked at the code I found that the only significant use of
both is in for proc statistics. There are 3 other uses in mm/rmap.c where
the use of mm->rss may be replaced by mm->total_vm.

So I removed all uses of mm->rss and anon_rss from the kernel and
introduced a bean counter count_vm() that is only run when the
corresponding /proc file is used. count_vm then runs throught the vm
and counts all the page types. This could also add additional page types to our
statistics and solve some of the consistency issues.

The patch is by no means perfect. If you think this is worth pursuing then
I will finish the support for other archs and deal with the locking
issues etc. This patch may also remove hot spot issues that may arise with
the use of these two variables and so is of interest to us.

But a kernel with this patch boots fine and the statistics in /proc look
still okay (its late though....)

Index: linux-2.6.9/kernel/fork.c
===================================================================
--- linux-2.6.9.orig/kernel/fork.c	2004-11-03 13:36:35.000000000 -0800
+++ linux-2.6.9/kernel/fork.c	2004-11-05 18:09:53.000000000 -0800
@@ -172,8 +172,6 @@
 	mm->mmap_cache = NULL;
 	mm->free_area_cache = oldmm->mmap_base;
 	mm->map_count = 0;
-	mm->rss = 0;
-	mm->anon_rss = 0;
 	cpus_clear(mm->cpu_vm_mask);
 	mm->mm_rb = RB_ROOT;
 	rb_link = &mm->mm_rb.rb_node;
Index: linux-2.6.9/include/linux/sched.h
===================================================================
--- linux-2.6.9.orig/include/linux/sched.h	2004-11-03 13:36:35.000000000 -0800
+++ linux-2.6.9/include/linux/sched.h	2004-11-05 18:09:33.000000000 -0800
@@ -216,7 +216,7 @@
 	atomic_t mm_count;			/* How many references to "struct mm_struct" (users count as 1) */
 	int map_count;				/* number of VMAs */
 	struct rw_semaphore mmap_sem;
-	spinlock_t page_table_lock;		/* Protects page tables, mm->rss, mm->anon_rss */
+	spinlock_t page_table_lock;		/* Protects page tables */

 	struct list_head mmlist;		/* List of maybe swapped mm's.  These are globally strung
 						 * together off init_mm.mmlist, and are protected
@@ -226,7 +226,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 */
Index: linux-2.6.9/fs/proc/task_mmu.c
===================================================================
--- linux-2.6.9.orig/fs/proc/task_mmu.c	2004-11-03 13:36:34.000000000 -0800
+++ linux-2.6.9/fs/proc/task_mmu.c	2004-11-06 00:41:11.000000000 -0800
@@ -7,10 +7,13 @@
 char *task_mem(struct mm_struct *mm, char *buffer)
 {
 	unsigned long data, text, lib;
+	struct vm_count c;
+

 	data = mm->total_vm - mm->shared_vm - mm->stack_vm;
 	text = (PAGE_ALIGN(mm->end_code) - (mm->start_code & PAGE_MASK)) >> 10;
 	lib = (mm->exec_vm << (PAGE_SHIFT-10)) - text;
+	count_vm(mm, &c);
 	buffer += sprintf(buffer,
 		"VmSize:\t%8lu kB\n"
 		"VmLck:\t%8lu kB\n"
@@ -22,7 +25,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),
+		c.resident << (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,11 +40,14 @@
 int task_statm(struct mm_struct *mm, int *shared, int *text,
 	       int *data, int *resident)
 {
-	*shared = mm->rss - mm->anon_rss;
+	struct vm_count c;
+
+	count_vm(mm, &c);
+	*shared = c.shared;
 	*text = (PAGE_ALIGN(mm->end_code) - (mm->start_code & PAGE_MASK))
 								>> PAGE_SHIFT;
 	*data = mm->total_vm - mm->shared_vm;
-	*resident = mm->rss;
+	*resident = c.resident;
 	return mm->total_vm;
 }

Index: linux-2.6.9/mm/mmap.c
===================================================================
--- linux-2.6.9.orig/mm/mmap.c	2004-11-03 13:36:36.000000000 -0800
+++ linux-2.6.9/mm/mmap.c	2004-11-05 18:12:00.000000000 -0800
@@ -1850,7 +1850,6 @@
 	vma = mm->mmap;
 	mm->mmap = mm->mmap_cache = NULL;
 	mm->mm_rb = RB_ROOT;
-	mm->rss = 0;
 	mm->total_vm = 0;
 	mm->locked_vm = 0;

Index: linux-2.6.9/include/asm-generic/tlb.h
===================================================================
--- linux-2.6.9.orig/include/asm-generic/tlb.h	2004-10-18 14:53:05.000000000 -0700
+++ linux-2.6.9/include/asm-generic/tlb.h	2004-11-06 01:12:10.000000000 -0800
@@ -86,13 +86,6 @@
 static inline void
 tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
 {
-	int freed = tlb->freed;
-	struct mm_struct *mm = tlb->mm;
-	int rss = mm->rss;
-
-	if (rss < freed)
-		freed = rss;
-	mm->rss = rss - freed;
 	tlb_flush_mmu(tlb, start, end);

 	/* keep the page table cache within bounds */
Index: linux-2.6.9/fs/exec.c
===================================================================
--- linux-2.6.9.orig/fs/exec.c	2004-11-03 13:36:34.000000000 -0800
+++ linux-2.6.9/fs/exec.c	2004-11-05 18:19:42.000000000 -0800
@@ -320,7 +320,6 @@
 		pte_unmap(pte);
 		goto out;
 	}
-	mm->rss++;
 	lru_cache_add_active(page);
 	set_pte(pte, pte_mkdirty(pte_mkwrite(mk_pte(
 					page, vma->vm_page_prot))));
Index: linux-2.6.9/fs/binfmt_flat.c
===================================================================
--- linux-2.6.9.orig/fs/binfmt_flat.c	2004-11-03 13:36:29.000000000 -0800
+++ linux-2.6.9/fs/binfmt_flat.c	2004-11-05 18:19:27.000000000 -0800
@@ -650,7 +650,6 @@
 		current->mm->start_brk = datapos + data_len + bss_len;
 		current->mm->brk = (current->mm->start_brk + 3) & ~3;
 		current->mm->context.end_brk = memp + ksize((void *) memp) - stack_len;
-		current->mm->rss = 0;
 	}

 	if (flags & FLAT_FLAG_KTRACE)
Index: linux-2.6.9/mm/memory.c
===================================================================
--- linux-2.6.9.orig/mm/memory.c	2004-11-03 13:36:36.000000000 -0800
+++ linux-2.6.9/mm/memory.c	2004-11-06 01:10:19.000000000 -0800
@@ -333,9 +333,6 @@
 					pte = pte_mkclean(pte);
 				pte = pte_mkold(pte);
 				get_page(page);
-				dst->rss++;
-				if (PageAnon(page))
-					dst->anon_rss++;
 				set_pte(dst_pte, pte);
 				page_dup_rmap(page);
 cont_copy_pte_range_noset:
@@ -426,8 +423,6 @@
 				set_pte(ptep, pgoff_to_pte(page->index));
 			if (pte_dirty(pte))
 				set_page_dirty(page);
-			if (PageAnon(page))
-				tlb->mm->anon_rss--;
 			else if (pte_young(pte))
 				mark_page_accessed(page);
 			tlb->freed++;
@@ -1113,11 +1108,7 @@
 	spin_lock(&mm->page_table_lock);
 	page_table = pte_offset_map(pmd, address);
 	if (likely(pte_same(*page_table, pte))) {
-		if (PageAnon(old_page))
-			mm->anon_rss--;
-		if (PageReserved(old_page))
-			++mm->rss;
-		else
+		if (!PageReserved(old_page))
 			page_remove_rmap(old_page);
 		break_cow(vma, new_page, address, page_table);
 		lru_cache_add_active(new_page);
@@ -1398,7 +1389,6 @@
 	if (vm_swap_full())
 		remove_exclusive_swap_page(page);

-	mm->rss++;
 	pte = mk_pte(page, vma->vm_page_prot);
 	if (write_access && can_share_swap_page(page)) {
 		pte = maybe_mkwrite(pte_mkdirty(pte), vma);
@@ -1463,7 +1453,6 @@
 			spin_unlock(&mm->page_table_lock);
 			goto out;
 		}
-		mm->rss++;
 		entry = maybe_mkwrite(pte_mkdirty(mk_pte(page,
 							 vma->vm_page_prot)),
 				      vma);
@@ -1571,8 +1560,6 @@
 	 */
 	/* Only go through if we didn't race with anybody else... */
 	if (pte_none(*page_table)) {
-		if (!PageReserved(new_page))
-			++mm->rss;
 		flush_icache_page(vma, new_page);
 		entry = mk_pte(new_page, vma->vm_page_prot);
 		if (write_access)
@@ -1851,3 +1838,108 @@
 }

 #endif
+
+static void count_pte_range(pmd_t *pmd,
+	unsigned long address, unsigned long size,
+	struct vm_count *c)
+{
+        unsigned long offset;
+        pte_t *ptep;
+
+        if (pmd_none(*pmd))
+                return;
+        if (unlikely(pmd_bad(*pmd)))
+                return;
+        ptep = pte_offset_map(pmd, address);
+        offset = address & ~PMD_MASK;
+        if (offset + size > PMD_SIZE)
+                size = PMD_SIZE - offset;
+        size &= PAGE_MASK;
+        for (offset=0; offset < size; ptep++, offset += PAGE_SIZE) {
+                pte_t pte = *ptep;
+
+		if (pte_none(pte))
+                        continue;
+
+                if (pte_present(pte)) {
+                        struct page *page = NULL;
+                        unsigned long pfn = pte_pfn(pte);
+
+			c->present++;
+                        if (pfn_valid(pfn)) {
+                                page = pfn_to_page(pfn);
+                                if (PageReserved(page))
+                                        c->reserved++;
+				else
+				if (page_mapped(page) > 1)
+					c->shared++;
+				else
+				if (page_mapped(page) == 1)
+					c->resident++;
+
+				if (PageLocked(page))
+					c->locked++;
+                        }
+                        if (unlikely(!page))
+                                continue;
+                        if (pte_dirty(pte))
+                                c->dirty++;
+                        else if (pte_young(pte))
+                                c->young++;
+                } else {
+	                if (pte_file(pte))
+				c->file++;
+			else
+				c->swap++;
+		}
+        }
+}
+
+static void count_pmd_range(pgd_t *dir,
+	unsigned long address, unsigned long end, struct vm_count *c)
+{
+	pmd_t * pmd;
+
+        if (pgd_none(*dir))
+                return;
+        if (unlikely(pgd_bad(*dir)))
+                return;
+
+	pmd = pmd_offset(dir, address);
+
+	if (end > ((address + PGDIR_SIZE) & PGDIR_MASK))
+                end = ((address + PGDIR_SIZE) & PGDIR_MASK);
+        do {
+                count_pte_range(pmd, address, end - address, c);
+                address = (address + PMD_SIZE) & PMD_MASK;
+                pmd++;
+        } while (address && address < end);
+}
+
+static void count_vma(struct vm_area_struct *vma, struct vm_count *c)
+{
+	unsigned long address = vma->vm_start;
+	unsigned long end = vma->vm_end;
+	pgd_t * dir = pgd_offset(vma->vm_mm, address);
+
+	do {
+		count_pmd_range(dir, address, end, c);
+		address = (address + PGDIR_SIZE) & PGDIR_MASK;
+		dir++;
+	} while (address && address < end);
+}
+
+void count_vm(struct mm_struct *mm, struct vm_count *c)
+{
+	struct vm_area_struct *vma;
+
+	memset(c, 0,sizeof(struct vm_count));
+
+	for(vma = mm->mmap; vma; vma = vma->vm_next)
+		if (is_vm_hugetlb_page(vma)) {
+			printk(KERN_WARNING "hugetlb scans not supported.\n");
+		} else
+			count_vma(vma, c);
+}
+
+
Index: linux-2.6.9/fs/binfmt_som.c
===================================================================
--- linux-2.6.9.orig/fs/binfmt_som.c	2004-10-18 14:53:51.000000000 -0700
+++ linux-2.6.9/fs/binfmt_som.c	2004-11-05 18:19:54.000000000 -0800
@@ -259,7 +259,6 @@
 	create_som_tables(bprm);

 	current->mm->start_stack = bprm->p;
-	current->mm->rss = 0;

 #if 0
 	printk("(start_brk) %08lx\n" , (unsigned long) current->mm->start_brk);
Index: linux-2.6.9/mm/fremap.c
===================================================================
--- linux-2.6.9.orig/mm/fremap.c	2004-11-03 13:36:30.000000000 -0800
+++ linux-2.6.9/mm/fremap.c	2004-11-05 18:11:46.000000000 -0800
@@ -39,7 +39,6 @@
 					set_page_dirty(page);
 				page_remove_rmap(page);
 				page_cache_release(page);
-				mm->rss--;
 			}
 		}
 	} else {
@@ -87,7 +86,6 @@

 	zap_pte(mm, vma, addr, pte);

-	mm->rss++;
 	flush_icache_page(vma, page);
 	set_pte(pte, mk_pte(page, prot));
 	page_add_file_rmap(page);
Index: linux-2.6.9/mm/swapfile.c
===================================================================
--- linux-2.6.9.orig/mm/swapfile.c	2004-11-03 13:36:36.000000000 -0800
+++ linux-2.6.9/mm/swapfile.c	2004-11-05 18:13:56.000000000 -0800
@@ -431,7 +431,6 @@
 unuse_pte(struct vm_area_struct *vma, unsigned long address, pte_t *dir,
 	swp_entry_t entry, struct page *page)
 {
-	vma->vm_mm->rss++;
 	get_page(page);
 	set_pte(dir, pte_mkold(mk_pte(page, vma->vm_page_prot)));
 	page_add_anon_rmap(page, vma, address);
Index: linux-2.6.9/fs/binfmt_aout.c
===================================================================
--- linux-2.6.9.orig/fs/binfmt_aout.c	2004-11-03 13:36:29.000000000 -0800
+++ linux-2.6.9/fs/binfmt_aout.c	2004-11-05 18:19:16.000000000 -0800
@@ -309,7 +309,6 @@
 		(current->mm->start_brk = N_BSSADDR(ex));
 	current->mm->free_area_cache = current->mm->mmap_base;

-	current->mm->rss = 0;
 	current->mm->mmap = NULL;
 	compute_creds(bprm);
  	current->flags &= ~PF_FORKNOEXEC;
Index: linux-2.6.9/arch/ia64/mm/hugetlbpage.c
===================================================================
--- linux-2.6.9.orig/arch/ia64/mm/hugetlbpage.c	2004-10-18 14:54:27.000000000 -0700
+++ linux-2.6.9/arch/ia64/mm/hugetlbpage.c	2004-11-05 18:17:34.000000000 -0800
@@ -65,7 +65,6 @@
 {
 	pte_t entry;

-	mm->rss += (HPAGE_SIZE / PAGE_SIZE);
 	if (write_access) {
 		entry =
 		    pte_mkwrite(pte_mkdirty(mk_pte(page, vma->vm_page_prot)));
@@ -108,7 +107,6 @@
 		ptepage = pte_page(entry);
 		get_page(ptepage);
 		set_pte(dst_pte, entry);
-		dst->rss += (HPAGE_SIZE / PAGE_SIZE);
 		addr += HPAGE_SIZE;
 	}
 	return 0;
@@ -249,7 +247,6 @@
 		put_page(page);
 		pte_clear(pte);
 	}
-	mm->rss -= (end - start) >> PAGE_SHIFT;
 	flush_tlb_range(vma, start, end);
 }

Index: linux-2.6.9/fs/proc/array.c
===================================================================
--- linux-2.6.9.orig/fs/proc/array.c	2004-11-03 13:36:29.000000000 -0800
+++ linux-2.6.9/fs/proc/array.c	2004-11-06 00:43:28.000000000 -0800
@@ -317,6 +317,7 @@
 	unsigned long rsslim = 0;
 	struct task_struct *t;
 	char tcomm[sizeof(task->comm)];
+	struct vm_count c;

 	state = *get_task_state(task);
 	vsize = eip = esp = 0;
@@ -394,6 +395,9 @@
 	/* convert nsec -> ticks */
 	start_time = nsec_to_clock_t(start_time);

+	if (mm)
+		count_vm(mm, &c);
+
 	res = sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu \
 %lu %lu %lu %lu %lu %ld %ld %ld %ld %d %ld %llu %lu %ld %lu %lu %lu %lu %lu \
 %lu %lu %lu %lu %lu %lu %lu %lu %d %d %lu %lu\n",
@@ -420,7 +424,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 ? c.resident : 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/arch/i386/mm/hugetlbpage.c
===================================================================
--- linux-2.6.9.orig/arch/i386/mm/hugetlbpage.c	2004-11-03 13:36:31.000000000 -0800
+++ linux-2.6.9/arch/i386/mm/hugetlbpage.c	2004-11-05 18:18:05.000000000 -0800
@@ -42,7 +42,6 @@
 {
 	pte_t entry;

-	mm->rss += (HPAGE_SIZE / PAGE_SIZE);
 	if (write_access) {
 		entry =
 		    pte_mkwrite(pte_mkdirty(mk_pte(page, vma->vm_page_prot)));
@@ -82,7 +81,6 @@
 		ptepage = pte_page(entry);
 		get_page(ptepage);
 		set_pte(dst_pte, entry);
-		dst->rss += (HPAGE_SIZE / PAGE_SIZE);
 		addr += HPAGE_SIZE;
 	}
 	return 0;
@@ -218,7 +216,6 @@
 		page = pte_page(pte);
 		put_page(page);
 	}
-	mm->rss -= (end - start) >> PAGE_SHIFT;
 	flush_tlb_range(vma, start, end);
 }

Index: linux-2.6.9/fs/binfmt_elf.c
===================================================================
--- linux-2.6.9.orig/fs/binfmt_elf.c	2004-11-03 13:36:29.000000000 -0800
+++ linux-2.6.9/fs/binfmt_elf.c	2004-11-05 18:18:53.000000000 -0800
@@ -716,7 +716,6 @@

 	/* Do this so that we can load the interpreter, if need be.  We will
 	   change some of these later */
-	current->mm->rss = 0;
 	current->mm->free_area_cache = current->mm->mmap_base;
 	retval = setup_arg_pages(bprm, executable_stack);
 	if (retval < 0) {
Index: linux-2.6.9/include/asm-ia64/tlb.h
===================================================================
--- linux-2.6.9.orig/include/asm-ia64/tlb.h	2004-10-18 14:53:51.000000000 -0700
+++ linux-2.6.9/include/asm-ia64/tlb.h	2004-11-06 00:33:14.000000000 -0800
@@ -159,13 +159,6 @@
 static inline void
 tlb_finish_mmu (struct mmu_gather *tlb, unsigned long start, unsigned long end)
 {
-	unsigned long freed = tlb->freed;
-	struct mm_struct *mm = tlb->mm;
-	unsigned long rss = mm->rss;
-
-	if (rss < freed)
-		freed = rss;
-	mm->rss = rss - freed;
 	/*
 	 * Note: tlb->nr may be 0 at this point, so we can't rely on tlb->start_addr and
 	 * tlb->end_addr.
Index: linux-2.6.9/include/linux/mm.h
===================================================================
--- linux-2.6.9.orig/include/linux/mm.h	2004-11-03 13:36:35.000000000 -0800
+++ linux-2.6.9/include/linux/mm.h	2004-11-06 00:28:06.000000000 -0800
@@ -792,6 +792,22 @@
 							-vma_pages(vma));
 }

+/* Statistics on pages used in a vm */
+
+struct vm_count {
+	unsigned long shared;
+	unsigned long resident;
+	unsigned long swap;
+	unsigned long file;
+	unsigned long present;
+	unsigned long reserved;
+	unsigned long dirty;
+	unsigned long locked;
+	unsigned long young;
+};
+
+extern void count_vm(struct mm_struct *mm, struct vm_count *c);
+
 #ifndef CONFIG_DEBUG_PAGEALLOC
 static inline void
 kernel_map_pages(struct page *page, int numpages, int enable)
--
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:"aart@kvack.org"> aart@kvack.org </a>

       reply	other threads:[~2004-11-06  9:28 UTC|newest]

Thread overview: 340+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4189EC67.40601@yahoo.com.au>
     [not found] ` <Pine.LNX.4.58.0411040820250.8211@schroedinger.engr.sgi.com>
     [not found]   ` <418AD329.3000609@yahoo.com.au>
     [not found]     ` <Pine.LNX.4.58.0411041733270.11583@schroedinger.engr.sgi.com>
     [not found]       ` <418AE0F0.5050908@yahoo.com.au>
     [not found]         ` <418AE9BB.1000602@yahoo.com.au>
     [not found]           ` <1099622957.29587.101.camel@gaston>
     [not found]             ` <418C55A7.9030100@yahoo.com.au>
2004-11-06  9:28               ` Christoph Lameter [this message]
2004-11-06  9:48                 ` Nick Piggin
2004-11-06  9:59                   ` William Lee Irwin III
2004-11-06 16:10                     ` Christoph Lameter
2004-11-06 10:19                 ` Nick Piggin
2004-11-06 10:31                   ` William Lee Irwin III
2004-11-06 10:41                     ` Nick Piggin
2004-11-06 10:53                       ` William Lee Irwin III
2004-11-06 11:07                         ` Nick Piggin
2004-11-06 12:06                           ` William Lee Irwin III
2004-11-06 12:08                             ` Nick Piggin
2004-11-06 12:23                               ` William Lee Irwin III
2004-11-07  0:54                                 ` Nick Piggin
2004-11-07  1:11                                   ` William Lee Irwin III
2004-11-07  1:58                                     ` Nick Piggin
2004-11-07  2:25                                       ` William Lee Irwin III
2004-11-06 12:59                 ` Andi Kleen
2004-11-06 15:17                 ` Martin J. Bligh
2004-11-06 16:19                   ` Christoph Lameter
2004-11-06 20:05                     ` William Lee Irwin III
2004-11-06 20:51                     ` Rik van Riel
2004-11-07 16:11                     ` Martin J. Bligh
2004-11-07 18:25                       ` Matthew Wilcox
2004-11-08 12:43                         ` Jesse Barnes
2004-11-08 15:26                         ` Andi Kleen
2004-11-08 16:07                           ` Christoph Lameter
2004-11-08 15:47                         ` Russ Anderson
2004-11-08 16:08                           ` Martin J. Bligh
2004-11-10  4:52                           ` Nick Piggin
2004-11-10 17:30                             ` Robin Holt
2004-11-10 18:50                             ` Ray Bryant
2004-11-10 18:50                             ` Ray Bryant
2004-11-12 23:45                             ` Ray Bryant
2004-11-13  0:05                               ` Steve Neuner
2004-11-08 16:04                       ` Christoph Lameter
2004-11-08 16:12                         ` Anton Blanchard
2004-11-08 16:14                         ` Martin J. Bligh
2004-11-08 16:25                           ` Christoph Lameter
2004-11-08 16:56                             ` Hugh Dickins
2004-11-08 17:01                               ` Christoph Lameter
2004-11-09  2:40                                 ` Nick Piggin
2004-11-09 12:10                                   ` Matthew Wilcox
2004-11-10  0:48                                     ` Nick Piggin
2004-11-08 16:30                         ` Erich Focht
2004-11-08 16:57                           ` Diego Calleja
2004-11-08 17:26                             ` Erich Focht
2004-11-10 11:57                         ` Magnus Damm
2004-11-08 16:35                       ` Rik van Riel
2004-11-06 16:06                 ` Hugh Dickins
2004-11-06 16:52                   ` Christoph Lameter
2004-11-18 19:34                   ` another approach to rss : sloppy rss Christoph Lameter
2004-11-19  1:09                     ` Nick Piggin
2004-11-19  1:14                       ` Christoph Lameter
2004-11-19  1:39                         ` Nick Piggin
2004-11-19  2:35                           ` Christoph Lameter
2004-11-19  6:00                             ` Nick Piggin
2004-11-19 19:21                               ` Christoph Lameter
2004-11-19 19:57                                 ` Robin Holt
2004-11-20  1:24                                   ` Nick Piggin
2004-11-20  1:46                                     ` Robin Holt
2004-11-19  1:40                     ` fast path for anonymous memory allocation Christoph Lameter
2004-11-19  2:19                       ` Nick Piggin
2004-11-19  2:38                         ` Christoph Lameter
2004-11-19  2:44                           ` Nick Piggin
2004-11-19  3:28                             ` Christoph Lameter
2004-11-19  7:07                               ` Benjamin Herrenschmidt
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: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-14 16:37                                                                           ` Christoph Lameter
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-21 18:22                                                                                                   ` [PATCH] Soft introduction of atomic pte operations to avoid the clearing of ptes Christoph Lameter
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  9:03                                                                                                         ` Christian Hildner
2005-02-07  6:14                                                                                                           ` Kernel 2.4.21 gives kernel panic at boot time baswaraj kasture
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-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 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                                                                 ` page fault scalability patch V13 [7/8]: Split RSS Christoph Lameter
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  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
2004-11-19  7:05                         ` fast path for anonymous memory allocation Benjamin Herrenschmidt
2004-11-06 20:16                 ` removing mm->rss and mm->anon_rss from kernel? Peter Chubb
2004-11-06 20:54                   ` Rik van Riel
2004-11-06 21:31                     ` William Lee Irwin III

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.0411060120190.22874@schroedinger.engr.sgi.com \
    --to=clameter@sgi.com \
    --cc=benh@kernel.crashing.org \
    --cc=hugh@veritas.com \
    --cc=linux-ia64@kernel.vger.org \
    --cc=linux-mm@kvack.org \
    --cc=nickpiggin@yahoo.com.au \
    /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