diff options
Diffstat (limited to 'mm/memcontrol.c')
| -rw-r--r-- | mm/memcontrol.c | 19 | 
1 files changed, 16 insertions, 3 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index a4d3282493b6..5b009b233ab8 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2555,7 +2555,7 @@ static unsigned long calculate_high_delay(struct mem_cgroup *memcg,   * Scheduled by try_charge() to be executed from the userland return path   * and reclaims memory over the high limit.   */ -void mem_cgroup_handle_over_high(void) +void mem_cgroup_handle_over_high(gfp_t gfp_mask)  {  	unsigned long penalty_jiffies;  	unsigned long pflags; @@ -2583,7 +2583,7 @@ retry_reclaim:  	 */  	nr_reclaimed = reclaim_high(memcg,  				    in_retry ? SWAP_CLUSTER_MAX : nr_pages, -				    GFP_KERNEL); +				    gfp_mask);  	/*  	 * memory.high is breached and reclaim is unable to keep up. Throttle @@ -2819,7 +2819,7 @@ done_restock:  	if (current->memcg_nr_pages_over_high > MEMCG_CHARGE_BATCH &&  	    !(current->flags & PF_MEMALLOC) &&  	    gfpflags_allow_blocking(gfp_mask)) { -		mem_cgroup_handle_over_high(); +		mem_cgroup_handle_over_high(gfp_mask);  	}  	return 0;  } @@ -3867,6 +3867,13 @@ static ssize_t mem_cgroup_write(struct kernfs_open_file *of,  		case _MEMSWAP:  			ret = mem_cgroup_resize_max(memcg, nr_pages, true);  			break; +		case _KMEM: +			pr_warn_once("kmem.limit_in_bytes is deprecated and will be removed. " +				     "Writing any value to this file has no effect. " +				     "Please report your usecase to linux-mm@kvack.org if you " +				     "depend on this functionality.\n"); +			ret = 0; +			break;  		case _TCP:  			ret = memcg_update_tcp_max(memcg, nr_pages);  			break; @@ -5078,6 +5085,12 @@ static struct cftype mem_cgroup_legacy_files[] = {  	},  #endif  	{ +		.name = "kmem.limit_in_bytes", +		.private = MEMFILE_PRIVATE(_KMEM, RES_LIMIT), +		.write = mem_cgroup_write, +		.read_u64 = mem_cgroup_read_u64, +	}, +	{  		.name = "kmem.usage_in_bytes",  		.private = MEMFILE_PRIVATE(_KMEM, RES_USAGE),  		.read_u64 = mem_cgroup_read_u64,  | 
