linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: nickpiggin@yahoo.com.au
Cc: Jeff Garzik <jgarzik@pobox.com>,
	torvalds@osdl.org, hugh@veritas.com, benh@kernel.crashing.org,
	linux-mm@kvack.org, linux-ia64@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Anticipatory prefaulting in the page fault handler V1
Date: Wed, 8 Dec 2004 09:24:06 -0800 (PST)	[thread overview]
Message-ID: <Pine.LNX.4.58.0412080920240.27156@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <20041202101029.7fe8b303.cliffw@osdl.org>

The page fault handler for anonymous pages can generate significant overhead
apart from its essential function which is to clear and setup a new page
table entry for a never accessed memory location. This overhead increases
significantly in an SMP environment.

In the page table scalability patches, we addressed the issue by changing
the locking scheme so that multiple fault handlers are able to be processed
concurrently on multiple cpus. This patch attempts to aggregate multiple
page faults into a single one. It does that by noting
anonymous page faults generated in sequence by an application.

If a fault occurred for page x and is then followed by page x+1 then it may
be reasonable to expect another page fault at x+2 in the future. If page
table entries for x+1 and x+2 would be prepared in the fault handling for
page x+1 then the overhead of taking a fault for x+2 is avoided. However
page x+2 may never be used and thus we may have increased the rss
of an application unnecessarily. The swapper will take care of removing
that page if memory should get tight.

The following patch makes the anonymous fault handler anticipate future
faults. For each fault a prediction is made where the fault would occur
(assuming linear acccess by the application). If the prediction turns out to
be right (next fault is where expected) then a number of pages is
preallocated in order to avoid a series of future faults. The order of the
preallocation increases by the power of two for each success in sequence.

The first successful prediction leads to an additional page being allocated.
Second successful prediction leads to 2 additional pages being allocated.
Third to 4 pages and so on. The max order is 3 by default. In a large
continous allocation the number of faults is reduced by a factor of 8.

The patch may be combined with the page fault scalability patch (another
edition of the patch is needed which will be forthcoming after the
page fault scalability patch has been included). The combined patches
will triple the possible page fault rate from ~1 mio faults sec to 3 mio
faults sec.

Standard Kernel on a 512 Cpu machine allocating 32GB with an increasing
number of threads (and thus increasing parallellism of page faults):

 Gb Rep Threads   User      System     Wall flt/cpu/s fault/wsec
 32   3    1    1.416s    138.165s 139.050s 45073.831  45097.498
 32   3    2    1.397s    148.523s  78.044s 41965.149  80201.646
 32   3    4    1.390s    152.618s  44.044s 40851.258 141545.239
 32   3    8    1.500s    374.008s  53.001s 16754.519 118671.950
 32   3   16    1.415s   1051.759s  73.094s  5973.803  85087.358
 32   3   32    1.867s   3400.417s 117.003s  1849.186  53754.928
 32   3   64    5.361s  11633.040s 197.034s   540.577  31881.112
 32   3  128   23.387s  39386.390s 332.055s   159.642  18918.599
 32   3  256   15.409s  20031.450s 168.095s   313.837  37237.918
 32   3  512   18.720s  10338.511s  86.047s   607.446  72752.686

Patched kernel:

Gb Rep Threads   User      System     Wall flt/cpu/s fault/wsec
 32   3    1    1.098s    138.544s 139.063s 45053.657  45057.920
 32   3    2    1.022s    127.770s  67.086s 48849.350  92707.085
 32   3    4    0.995s    119.666s  37.045s 52141.503 167955.292
 32   3    8    0.928s     87.400s  18.034s 71227.407 342934.242
 32   3   16    1.067s     72.943s  11.035s 85007.293 553989.377
 32   3   32    1.248s    133.753s  10.038s 46602.680 606062.151
 32   3   64    5.557s    438.634s  13.093s 14163.802 451418.617
 32   3  128   17.860s   1496.797s  19.048s  4153.714 322808.509
 32   3  256   13.382s    766.063s  10.016s  8071.695 618816.838
 32   3  512   17.067s    369.106s   5.041s 16291.764 1161285.521

These number are roughly equal to what can be accomplished with the
page fault scalability patches.

Kernel patches with both the page fault scalability patches and
prefaulting:

 Gb Rep Threads   User      System     Wall flt/cpu/s fault/wsec
 32  10    1    4.103s    456.384s 460.046s 45541.992  45544.369
 32  10    2    4.005s    415.119s 221.095s 50036.407  94484.174
 32  10    4    3.855s    371.317s 111.076s 55898.259 187635.724
 32  10    8    3.902s    308.673s  67.094s 67092.476 308634.397
 32  10   16    4.011s    224.213s  37.016s 91889.781 564241.062
 32  10   32    5.483s    209.391s  27.046s 97598.647 763495.417
 32  10   64   19.166s    219.925s  26.030s 87713.212 797286.395
 32  10  128   53.482s    342.342s  27.024s 52981.744 769687.791
 32  10  256   67.334s    180.321s  15.036s 84679.911 1364614.334
 32  10  512   66.516s     93.098s   9.015s131387.893 2291548.865

The fault rate doubles when both patches are applied.

And on the high end (512 processors allocating 256G) (No numbers
for regular kernels because they are extremely slow, also no
number for a low number of threads. Also very slow)

With prefaulting:

 Gb Rep Threads   User      System     Wall flt/cpu/s fault/wsec
256   3    4    8.241s   1414.348s 449.016s 35380.301 112056.239
256   3    8    8.306s   1300.982s 247.025s 38441.977 203559.271
256   3   16    8.368s   1223.853s 154.089s 40846.272 324940.924
256   3   32    8.536s   1284.041s 110.097s 38938.970 453556.624
256   3   64   13.025s   3587.203s 110.010s 13980.123 457131.492
256   3  128   25.025s  11460.700s 145.071s  4382.104 345404.909
256   3  256   26.150s   6061.649s  75.086s  8267.625 663414.482
256   3  512   20.637s   3037.097s  38.062s 16460.435 1302993.019

Page fault scalability patch and prefaulting. Max prefault order
increased to 5 (max preallocation of 32 pages):

 Gb Rep Threads   User      System     Wall flt/cpu/s fault/wsec
256  10    8   33.571s   4516.293s 863.021s 36874.099 194356.930
256  10   16   33.103s   3737.688s 461.028s 44492.553 363704.484
256  10   32   35.094s   3436.561s 321.080s 48326.262 521352.840
256  10   64   46.675s   2899.997s 245.020s 56936.124 684214.256
256  10  128   85.493s   2890.198s 203.008s 56380.890 826122.524
256  10  256   74.299s   1374.973s  99.088s115762.963 1679630.272
256  10  512   62.760s    706.559s  53.027s218078.311 3149273.714

We are getting into an almost linear scalability in the high end with
both patches and end up with a fault rate > 3 mio faults per second.

The one thing that takes up a lot of time is still be the zeroing
of pages in the page fault handler. There is a another
set of patches that I am working on which will prezero pages
and led to another an increase in performance by a factor of 2-4
(if prezeroed pages are available which may not always be the case).
Maybe we can reach 10 mio fault /sec that way.

Patch against 2.6.10-rc3-bk3:

Index: linux-2.6.9/include/linux/sched.h
===================================================================
--- linux-2.6.9.orig/include/linux/sched.h	2004-12-01 10:37:31.000000000 -0800
+++ linux-2.6.9/include/linux/sched.h	2004-12-01 10:38:15.000000000 -0800
@@ -537,6 +537,8 @@
 #endif

 	struct list_head tasks;
+	unsigned long anon_fault_next_addr;	/* Predicted sequential fault address */
+	int anon_fault_order;			/* Last order of allocation on fault */
 	/*
 	 * ptrace_list/ptrace_children forms the list of my children
 	 * that were stolen by a ptracer.
Index: linux-2.6.9/mm/memory.c
===================================================================
--- linux-2.6.9.orig/mm/memory.c	2004-12-01 10:38:11.000000000 -0800
+++ linux-2.6.9/mm/memory.c	2004-12-01 10:45:01.000000000 -0800
@@ -55,6 +55,7 @@

 #include <linux/swapops.h>
 #include <linux/elf.h>
+#include <linux/pagevec.h>

 #ifndef CONFIG_DISCONTIGMEM
 /* use the per-pgdat data instead for discontigmem - mbligh */
@@ -1432,8 +1433,106 @@
 		unsigned long addr)
 {
 	pte_t entry;
-	struct page * page = ZERO_PAGE(addr);
+	struct page * page;
+
+	addr &= PAGE_MASK;
+
+ 	if (current->anon_fault_next_addr == addr) {
+ 		unsigned long end_addr;
+ 		int order = current->anon_fault_order;
+
+		/* Sequence of page faults detected. Perform preallocation of pages */

+		/* The order of preallocations increases with each successful prediction */
+ 		order++;
+
+		if ((1 << order) < PAGEVEC_SIZE)
+			end_addr = addr + (1 << (order + PAGE_SHIFT));
+		else
+			end_addr = addr + PAGEVEC_SIZE * PAGE_SIZE;
+
+		if (end_addr > vma->vm_end)
+			end_addr = vma->vm_end;
+		if ((addr & PMD_MASK) != (end_addr & PMD_MASK))
+			end_addr &= PMD_MASK;
+
+		current->anon_fault_next_addr = end_addr;
+	 	current->anon_fault_order = order;
+
+		if (write_access) {
+
+			struct pagevec pv;
+			unsigned long a;
+			struct page **p;
+
+			pte_unmap(page_table);
+			spin_unlock(&mm->page_table_lock);
+
+			pagevec_init(&pv, 0);
+
+			if (unlikely(anon_vma_prepare(vma)))
+				return VM_FAULT_OOM;
+
+			/* Allocate the necessary pages */
+			for(a = addr;a < end_addr ; a += PAGE_SIZE) {
+				struct page *p = alloc_page_vma(GFP_HIGHUSER, vma, a);
+
+				if (p) {
+					clear_user_highpage(p, a);
+					pagevec_add(&pv,p);
+				} else
+					break;
+			}
+			end_addr = a;
+
+			spin_lock(&mm->page_table_lock);
+
+ 			for(p = pv.pages; addr < end_addr; addr += PAGE_SIZE, p++) {
+
+				page_table = pte_offset_map(pmd, addr);
+				if (!pte_none(*page_table)) {
+					/* Someone else got there first */
+					page_cache_release(*p);
+					pte_unmap(page_table);
+					continue;
+				}
+
+ 				entry = maybe_mkwrite(pte_mkdirty(mk_pte(*p,
+ 							 vma->vm_page_prot)),
+ 						      vma);
+
+				mm->rss++;
+				lru_cache_add_active(*p);
+				mark_page_accessed(*p);
+				page_add_anon_rmap(*p, vma, addr);
+
+				set_pte(page_table, entry);
+				pte_unmap(page_table);
+
+ 				/* No need to invalidate - it was non-present before */
+ 				update_mmu_cache(vma, addr, entry);
+			}
+ 		} else {
+ 			/* Read */
+ 			for(;addr < end_addr; addr += PAGE_SIZE) {
+				page_table = pte_offset_map(pmd, addr);
+ 				entry = pte_wrprotect(mk_pte(ZERO_PAGE(addr), vma->vm_page_prot));
+				set_pte(page_table, entry);
+				pte_unmap(page_table);
+
+ 				/* No need to invalidate - it was non-present before */
+				update_mmu_cache(vma, addr, entry);
+
+			};
+		}
+		spin_unlock(&mm->page_table_lock);
+		return VM_FAULT_MINOR;
+	}
+
+	current->anon_fault_next_addr = addr + PAGE_SIZE;
+	current->anon_fault_order = 0;
+
+	page = ZERO_PAGE(addr);
 	/* Read-only mapping of ZERO_PAGE. */
 	entry = pte_wrprotect(mk_pte(ZERO_PAGE(addr), vma->vm_page_prot));


  parent reply	other threads:[~2004-12-08 17:24 UTC|newest]

Thread overview: 289+ 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                                                   ` Christoph Lameter [this message]
2004-12-08 17:33                                                     ` Anticipatory prefaulting in the page fault handler V1 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                                               ` 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 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
2004-12-08 17:44 Anticipatory prefaulting in the page fault handler V1 Luck, Tony
2004-12-08 17:57 ` Christoph Lameter
2004-12-08 18:31 Luck, Tony

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.0412080920240.27156@schroedinger.engr.sgi.com \
    --to=clameter@sgi.com \
    --cc=benh@kernel.crashing.org \
    --cc=hugh@veritas.com \
    --cc=jgarzik@pobox.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 \
    /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).