KAMEZAWA Hiroyuki wrote:
> How about this one ?
> tested on x86-64 + mmotm-Nov10, works well. 
> (test on other arch is welcome.)
> 
> -Kame
> ==
> As  Jan Blunck <[EMAIL PROTECTED]> pointed out, allocating
> per-cpu stat for memcg to the size of NR_CPUS is not good.
> 
> This patch changes mem_cgroup's cpustat allocation not based
> on NR_CPUS but based on nr_cpu_ids.
> 
> From: Jan Blunck <[EMAIL PROTECTED]>
> Signed-off-by: KAMEZAWA Hiroyuki <[EMAIL PROTECTED]>
> 

Looks good :) . It's ok to use nr_cpu_ids when cgroup_init() is called 
at boot.

Reviewed-by: Li Zefan <[EMAIL PROTECTED]>

except..see comments for mem_cgroup_create()

> +static int mem_cgroup_size(void)
> +{
> +     int cpustat_size = nr_cpu_ids * sizeof(struct mem_cgroup_stat_cpu);
> +     return sizeof(struct mem_cgroup) + cpustat_size;
> +}
> +
> +

minor comment: one empty line is suffice.

...

>  static struct cgroup_subsys_state *
>  mem_cgroup_create(struct cgroup_subsys *ss, struct cgroup *cont)
>  {
>       struct mem_cgroup *mem;
>       int node;
>  
> -     if (unlikely((cont->parent) == NULL)) {
> -             mem = &init_mem_cgroup;
> -     } else {
> -             mem = mem_cgroup_alloc();
> -             if (!mem)
> -                     return ERR_PTR(-ENOMEM);
> -     }
> +     mem = mem_cgroup_alloc();
> +     if (!mem)
> +             return ERR_PTR(-ENOMEM);
>  
>       res_counter_init(&mem->res);
>  

free_out:
        for_each_node_state(node, N_POSSIBLE)
                free_mem_cgroup_per_zone_info(mem, node);
        if (cont->parent != NULL)       <---- this check should be removed
                mem_cgroup_free(mem);

_______________________________________________
Containers mailing list
[EMAIL PROTECTED]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to