/[pkg-src]/trunk/kernel26-magellan/patches-2.6.16-r12/0036-2.6.16-swap-prefetch-fix-lru_cache_add_tail-tidy.patch |
Contents of /trunk/kernel26-magellan/patches-2.6.16-r12/0036-2.6.16-swap-prefetch-fix-lru_cache_add_tail-tidy.patch
Parent Directory | Revision Log
Revision 72 -
(show annotations)
(download)
Mon Jun 5 09:25:38 2006 UTC (18 years, 3 months ago) by niro
File size: 4769 byte(s)
Mon Jun 5 09:25:38 2006 UTC (18 years, 3 months ago) by niro
File size: 4769 byte(s)
ver bump to 2.6.16-r12: - updated to linux-2.6.16.19 - updated to ck11
1 | From akpm@osdl.org Thu May 18 17:57:10 2006 |
2 | Return-Path: <akpm@osdl.org> |
3 | X-Original-To: kernel@kolivas.org |
4 | Delivered-To: kernel@kolivas.org |
5 | Received: from bhhdoa.org.au (bhhdoa.org.au [65.98.99.88]) |
6 | by mail.kolivas.org (Postfix) with ESMTP id 9D79F9E201 |
7 | for <kernel@kolivas.org>; Thu, 18 May 2006 17:57:14 +1000 (EST) |
8 | Received: from smtp.osdl.org (smtp.osdl.org [65.172.181.4]) |
9 | by bhhdoa.org.au (Postfix) with ESMTP id 50395517F9 |
10 | for <kernel@kolivas.org>; Thu, 18 May 2006 15:53:30 +1000 (EST) |
11 | Received: from shell0.pdx.osdl.net (fw.osdl.org [65.172.181.6]) |
12 | by smtp.osdl.org (8.12.8/8.12.8) with ESMTP id k4I7v9tH000989 |
13 | (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); |
14 | Thu, 18 May 2006 00:57:10 -0700 |
15 | Received: from localhost.localdomain (shell0.pdx.osdl.net [10.9.0.31]) |
16 | by shell0.pdx.osdl.net (8.13.1/8.11.6) with ESMTP id k4I7v9TO012558; |
17 | Thu, 18 May 2006 00:57:09 -0700 |
18 | Message-Id: <200605180757.k4I7v9TO012558@shell0.pdx.osdl.net> |
19 | Subject: + swap-prefetch-fix-lru_cache_add_tail-tidy.patch added to -mm tree |
20 | To: akpm@osdl.org, |
21 | a.p.zijlstra@chello.nl, |
22 | kernel@kolivas.org, |
23 | mm-commits@vger.kernel.org |
24 | From: akpm@osdl.org |
25 | Date: Thu, 18 May 2006 00:57:10 -0700 |
26 | X-Spam-Status: No, hits=1.088 required=5 tests=NO_REAL_NAME |
27 | X-Spam-Level: * |
28 | X-Spam-Checker-Version: SpamAssassin 2.63-osdl_revision__1.74__ |
29 | X-MIMEDefang-Filter: osdl$Revision: 1.1 $ |
30 | X-Scanned-By: MIMEDefang 2.36 |
31 | X-DSPAM-Result: Whitelisted |
32 | X-DSPAM-Confidence: 0.9997 |
33 | X-DSPAM-Probability: 0.0000 |
34 | X-DSPAM-Signature: 446c28e296891759557146 |
35 | X-DSPAM-Factors: 27, |
36 | var+lru, 0.00010, |
37 | dirty+pages, 0.00010, |
38 | dirty+pages, 0.00010, |
39 | macros, 0.00010, |
40 | macros, 0.00010, |
41 | tail+struct, 0.00010, |
42 | tail+struct, 0.00010, |
43 | put+cpu, 0.00010, |
44 | struct+pagevec, 0.00010, |
45 | struct+pagevec, 0.00010, |
46 | lru+lock, 0.00010, |
47 | lru+lock, 0.00010, |
48 | irq+zone, 0.00010, |
49 | irq+zone, 0.00010, |
50 | devel+mm, 0.00010, |
51 | pagevec, 0.00010, |
52 | pagevec, 0.00010, |
53 | only+patch, 0.00010, |
54 | ON+PageLRU, 0.00010, |
55 | ON+PageLRU, 0.00010, |
56 | add+active, 0.00010, |
57 | add+active, 0.00010, |
58 | pvecs, 0.00010, |
59 | patch+git, 0.00010, |
60 | patch+git, 0.00010, |
61 | zone+lru, 0.00010, |
62 | zone+lru, 0.00010 |
63 | X-UID: 19441 |
64 | X-Length: 10183 |
65 | Status: R |
66 | X-Status: NC |
67 | X-KMail-EncryptionState: |
68 | X-KMail-SignatureState: |
69 | X-KMail-MDN-Sent: |
70 | |
71 | |
72 | The patch titled |
73 | |
74 | swap-prefetch-fix-lru_cache_add_tail-tidy |
75 | |
76 | has been added to the -mm tree. Its filename is |
77 | |
78 | swap-prefetch-fix-lru_cache_add_tail-tidy.patch |
79 | |
80 | See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find |
81 | out what to do about this |
82 | |
83 | |
84 | From: Andrew Morton <akpm@osdl.org> |
85 | |
86 | - Avoid the forward decl |
87 | |
88 | - Too big for inlining. |
89 | |
90 | Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> |
91 | Acked-by: Con Kolivas <kernel@kolivas.org> |
92 | Signed-off-by: Andrew Morton <akpm@osdl.org> |
93 | --- |
94 | |
95 | mm/swap.c | 50 ++++++++++++++++++++++++-------------------------- |
96 | 1 files changed, 24 insertions(+), 26 deletions(-) |
97 | |
98 | Index: linux-2.6.16-ck11/mm/swap.c |
99 | =================================================================== |
100 | --- linux-2.6.16-ck11.orig/mm/swap.c 2006-05-21 12:24:27.000000000 +1000 |
101 | +++ linux-2.6.16-ck11/mm/swap.c 2006-05-21 12:24:35.000000000 +1000 |
102 | @@ -163,7 +163,30 @@ void fastcall lru_cache_add_active(struc |
103 | put_cpu_var(lru_add_active_pvecs); |
104 | } |
105 | |
106 | -static inline void __pagevec_lru_add_tail(struct pagevec *pvec); |
107 | +static void __pagevec_lru_add_tail(struct pagevec *pvec) |
108 | +{ |
109 | + int i; |
110 | + struct zone *zone = NULL; |
111 | + |
112 | + for (i = 0; i < pagevec_count(pvec); i++) { |
113 | + struct page *page = pvec->pages[i]; |
114 | + struct zone *pagezone = page_zone(page); |
115 | + |
116 | + if (pagezone != zone) { |
117 | + if (zone) |
118 | + spin_unlock_irq(&zone->lru_lock); |
119 | + zone = pagezone; |
120 | + spin_lock_irq(&zone->lru_lock); |
121 | + } |
122 | + BUG_ON(PageLRU(page)); |
123 | + SetPageLRU(page); |
124 | + add_page_to_inactive_list_tail(zone, page); |
125 | + } |
126 | + if (zone) |
127 | + spin_unlock_irq(&zone->lru_lock); |
128 | + release_pages(pvec->pages, pvec->nr, pvec->cold); |
129 | + pagevec_reinit(pvec); |
130 | +} |
131 | |
132 | static void __lru_add_drain(int cpu) |
133 | { |
134 | @@ -391,31 +414,6 @@ void __pagevec_lru_add_active(struct pag |
135 | pagevec_reinit(pvec); |
136 | } |
137 | |
138 | -static inline void __pagevec_lru_add_tail(struct pagevec *pvec) |
139 | -{ |
140 | - int i; |
141 | - struct zone *zone = NULL; |
142 | - |
143 | - for (i = 0; i < pagevec_count(pvec); i++) { |
144 | - struct page *page = pvec->pages[i]; |
145 | - struct zone *pagezone = page_zone(page); |
146 | - |
147 | - if (pagezone != zone) { |
148 | - if (zone) |
149 | - spin_unlock_irq(&zone->lru_lock); |
150 | - zone = pagezone; |
151 | - spin_lock_irq(&zone->lru_lock); |
152 | - } |
153 | - BUG_ON(PageLRU(page)); |
154 | - SetPageLRU(page); |
155 | - add_page_to_inactive_list_tail(zone, page); |
156 | - } |
157 | - if (zone) |
158 | - spin_unlock_irq(&zone->lru_lock); |
159 | - release_pages(pvec->pages, pvec->nr, pvec->cold); |
160 | - pagevec_reinit(pvec); |
161 | -} |
162 | - |
163 | /* |
164 | * Function used uniquely to put pages back to the lru at the end of the |
165 | * inactive list to preserve the lru order. Currently only used by swap |