mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
memcg: export memory cgroup's swappiness with mem_cgroup_swappiness()
Each memory cgroup has a 'swappiness' value which can be accessed by get_swappiness(memcg). The major user is try_to_free_mem_cgroup_pages() and swappiness is passed by argument. It's propagated by scan_control. get_swappiness() is a static function but some planned updates will need to get swappiness from files other than memcontrol.c This patch exports get_swappiness() as mem_cgroup_swappiness(). With this, we can remove the argument of swapiness from try_to_free... and drop swappiness from scan_control. only memcg uses it. Signed-off-by: KAMEZAWA Hiroyuki <[email protected]> Cc: Daisuke Nishimura <[email protected]> Cc: Balbir Singh <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Ying Han <[email protected]> Cc: Shaohua Li <[email protected]> Cc: KOSAKI Motohiro <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
b830ac1d9a
commit
1f4c025b5a
3 changed files with 26 additions and 25 deletions
|
|
@ -249,7 +249,7 @@ struct mem_cgroup {
|
|||
atomic_t oom_lock;
|
||||
atomic_t refcnt;
|
||||
|
||||
unsigned int swappiness;
|
||||
int swappiness;
|
||||
/* OOM-Killer disable */
|
||||
int oom_kill_disable;
|
||||
|
||||
|
|
@ -1329,7 +1329,7 @@ static unsigned long mem_cgroup_margin(struct mem_cgroup *mem)
|
|||
return margin >> PAGE_SHIFT;
|
||||
}
|
||||
|
||||
static unsigned int get_swappiness(struct mem_cgroup *memcg)
|
||||
int mem_cgroup_swappiness(struct mem_cgroup *memcg)
|
||||
{
|
||||
struct cgroup *cgrp = memcg->css.cgroup;
|
||||
|
||||
|
|
@ -1776,12 +1776,11 @@ static int mem_cgroup_hierarchical_reclaim(struct mem_cgroup *root_mem,
|
|||
/* we use swappiness of local cgroup */
|
||||
if (check_soft) {
|
||||
ret = mem_cgroup_shrink_node_zone(victim, gfp_mask,
|
||||
noswap, get_swappiness(victim), zone,
|
||||
&nr_scanned);
|
||||
noswap, zone, &nr_scanned);
|
||||
*total_scanned += nr_scanned;
|
||||
} else
|
||||
ret = try_to_free_mem_cgroup_pages(victim, gfp_mask,
|
||||
noswap, get_swappiness(victim));
|
||||
noswap);
|
||||
css_put(&victim->css);
|
||||
/*
|
||||
* At shrinking usage, we can't check we should stop here or
|
||||
|
|
@ -3826,7 +3825,7 @@ try_to_free:
|
|||
goto out;
|
||||
}
|
||||
progress = try_to_free_mem_cgroup_pages(mem, GFP_KERNEL,
|
||||
false, get_swappiness(mem));
|
||||
false);
|
||||
if (!progress) {
|
||||
nr_retries--;
|
||||
/* maybe some writeback is necessary */
|
||||
|
|
@ -4288,7 +4287,7 @@ static u64 mem_cgroup_swappiness_read(struct cgroup *cgrp, struct cftype *cft)
|
|||
{
|
||||
struct mem_cgroup *memcg = mem_cgroup_from_cont(cgrp);
|
||||
|
||||
return get_swappiness(memcg);
|
||||
return mem_cgroup_swappiness(memcg);
|
||||
}
|
||||
|
||||
static int mem_cgroup_swappiness_write(struct cgroup *cgrp, struct cftype *cft,
|
||||
|
|
@ -4997,7 +4996,7 @@ mem_cgroup_create(struct cgroup_subsys *ss, struct cgroup *cont)
|
|||
INIT_LIST_HEAD(&mem->oom_notify);
|
||||
|
||||
if (parent)
|
||||
mem->swappiness = get_swappiness(parent);
|
||||
mem->swappiness = mem_cgroup_swappiness(parent);
|
||||
atomic_set(&mem->refcnt, 1);
|
||||
mem->move_charge_at_immigrate = 0;
|
||||
mutex_init(&mem->thresholds_lock);
|
||||
|
|
|
|||
Loading…
Reference in a new issue