|
@@ -5128,6 +5128,8 @@ static int memory_stat_show(struct seq_file *m, void *v)
|
|
|
(u64)tree_stat(memcg, MEM_CGROUP_STAT_RSS) * PAGE_SIZE);
|
|
|
seq_printf(m, "file %llu\n",
|
|
|
(u64)tree_stat(memcg, MEM_CGROUP_STAT_CACHE) * PAGE_SIZE);
|
|
|
+ seq_printf(m, "sock %llu\n",
|
|
|
+ (u64)tree_stat(memcg, MEMCG_SOCK) * PAGE_SIZE);
|
|
|
|
|
|
seq_printf(m, "file_mapped %llu\n",
|
|
|
(u64)tree_stat(memcg, MEM_CGROUP_STAT_FILE_MAPPED) *
|
|
@@ -5631,6 +5633,8 @@ bool mem_cgroup_charge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages)
|
|
|
if (in_softirq())
|
|
|
gfp_mask = GFP_NOWAIT;
|
|
|
|
|
|
+ this_cpu_add(memcg->stat->count[MEMCG_SOCK], nr_pages);
|
|
|
+
|
|
|
if (try_charge(memcg, gfp_mask, nr_pages) == 0)
|
|
|
return true;
|
|
|
|
|
@@ -5650,6 +5654,8 @@ void mem_cgroup_uncharge_skmem(struct mem_cgroup *memcg, unsigned int nr_pages)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ this_cpu_sub(memcg->stat->count[MEMCG_SOCK], nr_pages);
|
|
|
+
|
|
|
page_counter_uncharge(&memcg->memory, nr_pages);
|
|
|
css_put_many(&memcg->css, nr_pages);
|
|
|
}
|