Skip to contentSkip to conversation

Patch "mm, vmscan: cleanup lru size claculations" has been added to the 4.10-stable tree

PATCH [email protected] 1 participant 1 message Mar 8, 2017

Subsystems (5)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

mm, vmscan: cleanup lru size claculations

to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
mm-vmscan-cleanup-lru-size-claculations.patch
and it can be found in the queue-4.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From fd538803731e50367b7c59ce4ad3454426a3d671 Mon Sep 17 00:00:00 2001

From: Michal Hocko <[email protected]>
Date: Wed, 22 Feb 2017 15:45:58 -0800
Subject: mm, vmscan: cleanup lru size claculations

From: Michal Hocko <[email protected]>

commit fd538803731e50367b7c59ce4ad3454426a3d671 upstream.

lruvec_lru_size returns the full size of the LRU list while we sometimes need a value reduced only to eligible zones (e.g. for lowmem requests). inactive_list_is_low is one such user. Later patches will add more of them. Add a new parameter to lruvec_lru_size and allow it filter out zones which are not eligible for the given context.

---
 include/linux/mmzone.h |    2 -
 mm/vmscan.c            |   81 +++++++++++++++++++++++--------------------------
 mm/workingset.c        |    2 -
 3 files changed, 41 insertions(+), 44 deletions(-)
include/linux/mmzone.h +1 -1
@@ -779,7 +779,7 @@ static inline struct pglist_data *lruvec
 #endif
 }
 
-extern unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru);
+extern unsigned long lruvec_lru_size(struct lruvec *lruvec, enum lru_list lru, int zone_idx);
 
 #ifdef CONFIG_HAVE_MEMORY_PRESENT
 void memory_present(int nid, unsigned long start, unsigned long end);
mm/vmscan.c +39 -42

123 lines not on this page · raw message

mm/workingset.c +1 -1
@@ -267,7 +267,7 @@ bool workingset_refault(void *shadow)
 	}
 	lruvec = mem_cgroup_lruvec(pgdat, memcg);
 	refault = atomic_long_read(&lruvec->inactive_age);
-	active_file = lruvec_lru_size(lruvec, LRU_ACTIVE_FILE);
+	active_file = lruvec_lru_size(lruvec, LRU_ACTIVE_FILE, MAX_NR_ZONES);
 	rcu_read_unlock();
 
 	/*

Patches currently in stable-queue which might be from [email protected] are

queue-4.10/mm-vmpressure-fix-sending-wrong-events-on-underflow.patch queue-4.10/mm-page_alloc-fix-nodes-for-reclaim-in-fast-path.patch queue-4.10/mm-vmscan-consider-eligible-zones-in-get_scan_count.patch queue-4.10/mm-vmscan-cleanup-lru-size-claculations.patch queue-4.10/mm-devm_memremap_pages-hold-device_hotplug-lock-over-mem_hotplug_-begin-done.patch queue-4.10/mm-do-not-access-page-mapping-directly-on-page_endio.patch