Magellan Linux

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 Parent Directory | Revision Log Revision Log


Revision 72 - (show annotations) (download)
Mon Jun 5 09:25:38 2006 UTC (17 years, 11 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