diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-17 17:42:19 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-17 17:42:19 -0500 |
commit | 7a608572a282a74978e10fd6cd63090aebe29f5c (patch) | |
tree | 03e52f73d7c35ffcea8f46e14ec569da818a7631 /mm/vmscan.c | |
parent | 9e8a462a0141b12e22c4a2f0c12e0542770401f0 (diff) |
Revert "mm: batch activate_page() to reduce lock contention"
This reverts commit 744ed1442757767ffede5008bb13e0805085902e.
Chris Mason ended up chasing down some page allocation errors and pages
stuck waiting on the IO scheduler, and was able to narrow it down to two
commits: commit 744ed1442757 ("mm: batch activate_page() to reduce lock
contention") and d8505dee1a87 ("mm: simplify code of swap.c").
This reverts the first of them.
Reported-and-debugged-by: Chris Mason <chris.mason@oracle.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jens Axboe <jaxboe@fusionio.com>
Cc: linux-mm <linux-mm@kvack.org>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r-- | mm/vmscan.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index 99999a9b2b0b..47a50962ce81 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -1271,16 +1271,14 @@ putback_lru_pages(struct zone *zone, struct scan_control *sc, | |||
1271 | spin_lock_irq(&zone->lru_lock); | 1271 | spin_lock_irq(&zone->lru_lock); |
1272 | continue; | 1272 | continue; |
1273 | } | 1273 | } |
1274 | SetPageLRU(page); | ||
1274 | lru = page_lru(page); | 1275 | lru = page_lru(page); |
1276 | add_page_to_lru_list(zone, page, lru); | ||
1275 | if (is_active_lru(lru)) { | 1277 | if (is_active_lru(lru)) { |
1276 | int file = is_file_lru(lru); | 1278 | int file = is_file_lru(lru); |
1277 | int numpages = hpage_nr_pages(page); | 1279 | int numpages = hpage_nr_pages(page); |
1278 | reclaim_stat->recent_rotated[file] += numpages; | 1280 | reclaim_stat->recent_rotated[file] += numpages; |
1279 | if (putback_active_lru_page(zone, page)) | ||
1280 | continue; | ||
1281 | } | 1281 | } |
1282 | SetPageLRU(page); | ||
1283 | add_page_to_lru_list(zone, page, lru); | ||
1284 | if (!pagevec_add(&pvec, page)) { | 1282 | if (!pagevec_add(&pvec, page)) { |
1285 | spin_unlock_irq(&zone->lru_lock); | 1283 | spin_unlock_irq(&zone->lru_lock); |
1286 | __pagevec_release(&pvec); | 1284 | __pagevec_release(&pvec); |