On Mon, 10 Feb 2014, Michal Hocko wrote:

> diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> index 19d5d4274e22..55e6731ebcd5 100644
> --- a/mm/memcontrol.c
> +++ b/mm/memcontrol.c
> @@ -1687,7 +1687,7 @@ void mem_cgroup_print_oom_info(struct mem_cgroup 
> *memcg, struct task_struct *p)
>        * protects memcg_name and makes sure that parallel ooms do not
>        * interleave
>        */
> -     static DEFINE_SPINLOCK(oom_info_lock);
> +     static DEFINE_MUTEX(oom_info_lock);
>       struct cgroup *task_cgrp;
>       struct cgroup *mem_cgrp;
>       static char memcg_name[PATH_MAX];
> @@ -1698,7 +1698,7 @@ void mem_cgroup_print_oom_info(struct mem_cgroup 
> *memcg, struct task_struct *p)
>       if (!p)
>               return;
>  
> -     spin_lock(&oom_info_lock);
> +     mutex_lock(&oom_info_lock);
>       rcu_read_lock();
>  
>       mem_cgrp = memcg->css.cgroup;
> @@ -1767,7 +1767,7 @@ done:
>  
>               pr_cont("\n");
>       }
> -     spin_unlock(&oom_info_lock);
> +     mutex_unlock(&oom_info_lock);
>  }
>  
>  /*

Can we change oom_info_lock() to only protecting memcg_name and forget 
about interleaving the hierarchical memcg stats instead?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to