|
@@ -87,6 +87,7 @@ struct scan_control {
|
|
|
/* The highest zone to isolate pages for reclaim from */
|
|
|
enum zone_type reclaim_idx;
|
|
|
|
|
|
+ /* Writepage batching in laptop mode; RECLAIM_WRITE */
|
|
|
unsigned int may_writepage:1;
|
|
|
|
|
|
/* Can mapped pages be reclaimed? */
|
|
@@ -1373,13 +1374,10 @@ int __isolate_lru_page(struct page *page, isolate_mode_t mode)
|
|
|
* wants to isolate pages it will be able to operate on without
|
|
|
* blocking - clean pages for the most part.
|
|
|
*
|
|
|
- * ISOLATE_CLEAN means that only clean pages should be isolated. This
|
|
|
- * is used by reclaim when it is cannot write to backing storage
|
|
|
- *
|
|
|
* ISOLATE_ASYNC_MIGRATE is used to indicate that it only wants to pages
|
|
|
* that it is possible to migrate without blocking
|
|
|
*/
|
|
|
- if (mode & (ISOLATE_CLEAN|ISOLATE_ASYNC_MIGRATE)) {
|
|
|
+ if (mode & ISOLATE_ASYNC_MIGRATE) {
|
|
|
/* All the caller can do on PageWriteback is block */
|
|
|
if (PageWriteback(page))
|
|
|
return ret;
|
|
@@ -1387,10 +1385,6 @@ int __isolate_lru_page(struct page *page, isolate_mode_t mode)
|
|
|
if (PageDirty(page)) {
|
|
|
struct address_space *mapping;
|
|
|
|
|
|
- /* ISOLATE_CLEAN means only clean pages */
|
|
|
- if (mode & ISOLATE_CLEAN)
|
|
|
- return ret;
|
|
|
-
|
|
|
/*
|
|
|
* Only pages without mappings or that have a
|
|
|
* ->migratepage callback are possible to migrate
|
|
@@ -1731,8 +1725,6 @@ shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec,
|
|
|
|
|
|
if (!sc->may_unmap)
|
|
|
isolate_mode |= ISOLATE_UNMAPPED;
|
|
|
- if (!sc->may_writepage)
|
|
|
- isolate_mode |= ISOLATE_CLEAN;
|
|
|
|
|
|
spin_lock_irq(&pgdat->lru_lock);
|
|
|
|
|
@@ -1929,8 +1921,6 @@ static void shrink_active_list(unsigned long nr_to_scan,
|
|
|
|
|
|
if (!sc->may_unmap)
|
|
|
isolate_mode |= ISOLATE_UNMAPPED;
|
|
|
- if (!sc->may_writepage)
|
|
|
- isolate_mode |= ISOLATE_CLEAN;
|
|
|
|
|
|
spin_lock_irq(&pgdat->lru_lock);
|
|
|
|