mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 11:16:11 +00:00
memcontrol: add vm_match_cgroup()
mm_cgroup() is exclusively used to test whether an mm's mem_cgroup pointer is pointing to a specific cgroup. Instead of returning the pointer, we can just do the test itself in a new macro: vm_match_cgroup(mm, cgroup) returns non-zero if the mm's mem_cgroup points to cgroup. Otherwise it returns zero. Signed-off-by: David Rientjes <rientjes@google.com> Cc: Balbir Singh <balbir@in.ibm.com> Cc: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6966a97753
commit
60c12b1202
3 changed files with 7 additions and 9 deletions
|
@ -51,10 +51,8 @@ extern int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm,
|
|||
gfp_t gfp_mask);
|
||||
int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem);
|
||||
|
||||
static inline struct mem_cgroup *mm_cgroup(const struct mm_struct *mm)
|
||||
{
|
||||
return rcu_dereference(mm->mem_cgroup);
|
||||
}
|
||||
#define vm_match_cgroup(mm, cgroup) \
|
||||
((cgroup) == rcu_dereference((mm)->mem_cgroup))
|
||||
|
||||
extern int mem_cgroup_prepare_migration(struct page *page);
|
||||
extern void mem_cgroup_end_migration(struct page *page);
|
||||
|
@ -123,9 +121,9 @@ static inline int mem_cgroup_cache_charge(struct page *page,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline struct mem_cgroup *mm_cgroup(const struct mm_struct *mm)
|
||||
static inline int vm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem)
|
||||
{
|
||||
return NULL;
|
||||
return 1;
|
||||
}
|
||||
|
||||
static inline int task_in_mem_cgroup(struct task_struct *task,
|
||||
|
|
|
@ -399,7 +399,7 @@ int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem)
|
|||
int ret;
|
||||
|
||||
task_lock(task);
|
||||
ret = task->mm && mm_cgroup(task->mm) == mem;
|
||||
ret = task->mm && vm_match_cgroup(task->mm, mem);
|
||||
task_unlock(task);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -321,7 +321,7 @@ static int page_referenced_anon(struct page *page,
|
|||
* counting on behalf of references from different
|
||||
* cgroups
|
||||
*/
|
||||
if (mem_cont && (mm_cgroup(vma->vm_mm) != mem_cont))
|
||||
if (mem_cont && !vm_match_cgroup(vma->vm_mm, mem_cont))
|
||||
continue;
|
||||
referenced += page_referenced_one(page, vma, &mapcount);
|
||||
if (!mapcount)
|
||||
|
@ -382,7 +382,7 @@ static int page_referenced_file(struct page *page,
|
|||
* counting on behalf of references from different
|
||||
* cgroups
|
||||
*/
|
||||
if (mem_cont && (mm_cgroup(vma->vm_mm) != mem_cont))
|
||||
if (mem_cont && !vm_match_cgroup(vma->vm_mm, mem_cont))
|
||||
continue;
|
||||
if ((vma->vm_flags & (VM_LOCKED|VM_MAYSHARE))
|
||||
== (VM_LOCKED|VM_MAYSHARE)) {
|
||||
|
|
Loading…
Reference in a new issue