memcg: use [kv]zalloc[_node] rather than [kv]malloc+memset

In mem_cgroup_alloc() we currently do either kmalloc() or vmalloc() then
followed by memset() to zero the memory. This can be more efficiently
achieved by using kzalloc() and vzalloc(). There's also one situation
where we can use kzalloc_node() - this is what's new in this version of
the patch.

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Minchan Kim <minchan.kim@gmail.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by Jesper Juhl and committed by Linus Torvalds 17295c88 dfe076b0

+3 -6
+3 -6
mm/memcontrol.c
··· 4216 4216 */ 4217 4217 if (!node_state(node, N_NORMAL_MEMORY)) 4218 4218 tmp = -1; 4219 - pn = kmalloc_node(sizeof(*pn), GFP_KERNEL, tmp); 4219 + pn = kzalloc_node(sizeof(*pn), GFP_KERNEL, tmp); 4220 4220 if (!pn) 4221 4221 return 1; 4222 4222 4223 4223 mem->info.nodeinfo[node] = pn; 4224 - memset(pn, 0, sizeof(*pn)); 4225 - 4226 4224 for (zone = 0; zone < MAX_NR_ZONES; zone++) { 4227 4225 mz = &pn->zoneinfo[zone]; 4228 4226 for_each_lru(l) ··· 4244 4246 4245 4247 /* Can be very big if MAX_NUMNODES is very big */ 4246 4248 if (size < PAGE_SIZE) 4247 - mem = kmalloc(size, GFP_KERNEL); 4249 + mem = kzalloc(size, GFP_KERNEL); 4248 4250 else 4249 - mem = vmalloc(size); 4251 + mem = vzalloc(size); 4250 4252 4251 4253 if (!mem) 4252 4254 return NULL; 4253 4255 4254 - memset(mem, 0, size); 4255 4256 mem->stat = alloc_percpu(struct mem_cgroup_stat_cpu); 4256 4257 if (!mem->stat) 4257 4258 goto out_free;