|
@@ -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
|
|
* protects memcg_name and makes sure that parallel ooms do not
|
|
* interleave
|
|
* interleave
|
|
*/
|
|
*/
|
|
- static DEFINE_SPINLOCK(oom_info_lock);
|
|
|
|
|
|
+ static DEFINE_MUTEX(oom_info_lock);
|
|
struct cgroup *task_cgrp;
|
|
struct cgroup *task_cgrp;
|
|
struct cgroup *mem_cgrp;
|
|
struct cgroup *mem_cgrp;
|
|
static char memcg_name[PATH_MAX];
|
|
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)
|
|
if (!p)
|
|
return;
|
|
return;
|
|
|
|
|
|
- spin_lock(&oom_info_lock);
|
|
|
|
|
|
+ mutex_lock(&oom_info_lock);
|
|
rcu_read_lock();
|
|
rcu_read_lock();
|
|
|
|
|
|
mem_cgrp = memcg->css.cgroup;
|
|
mem_cgrp = memcg->css.cgroup;
|
|
@@ -1767,7 +1767,7 @@ done:
|
|
|
|
|
|
pr_cont("\n");
|
|
pr_cont("\n");
|
|
}
|
|
}
|
|
- spin_unlock(&oom_info_lock);
|
|
|
|
|
|
+ mutex_unlock(&oom_info_lock);
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|