mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
Memory controller: make charging gfp mask aware
Nick Piggin pointed out that swap cache and page cache addition routines could be called from non GFP_KERNEL contexts. This patch makes the charging routine aware of the gfp context. Charging might fail if the cgroup is over it's limit, in which case a suitable error is returned. This patch was tested on a Powerpc box. I am still looking at being able to test the path, through which allocations happen in non GFP_KERNEL contexts. [[email protected]: problem with ZONE_MOVABLE] Signed-off-by: Balbir Singh <[email protected]> Cc: Pavel Emelianov <[email protected]> Cc: Paul Menage <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: "Eric W. Biederman" <[email protected]> Cc: Nick Piggin <[email protected]> Cc: Kirill Korotaev <[email protected]> Cc: Herbert Poetzl <[email protected]> Cc: David Rientjes <[email protected]> Cc: Vaidyanathan Srinivasan <[email protected]> Signed-off-by: KAMEZAWA Hiroyuki <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
bed7161a51
commit
e1a1cd590e
9 changed files with 41 additions and 30 deletions
|
|
@ -510,7 +510,7 @@ unsigned int count_swap_pages(int type, int free)
|
|||
static int unuse_pte(struct vm_area_struct *vma, pte_t *pte,
|
||||
unsigned long addr, swp_entry_t entry, struct page *page)
|
||||
{
|
||||
if (mem_cgroup_charge(page, vma->vm_mm))
|
||||
if (mem_cgroup_charge(page, vma->vm_mm, GFP_KERNEL))
|
||||
return -ENOMEM;
|
||||
|
||||
inc_mm_counter(vma->vm_mm, anon_rss);
|
||||
|
|
|
|||
Loading…
Reference in a new issue