Hi Andrew,

Today's linux-next merge of the akpm-current tree got a conflict in
mm/memcontrol.c between commit e61734c55c24 ("cgroup: remove
cgroup->name") from the cgroup tree and commit 05d3a02a1a0d ("memcg:
change oom_info_lock to mutex") from the akpm-current tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    s...@canb.auug.org.au

diff --cc mm/memcontrol.c
index d9c6ac1532e6,de1a2aed4954..000000000000
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@@ -1683,25 -1683,54 +1683,25 @@@ static void move_unlock_mem_cgroup(stru
   */
  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
 -       */
 +      /* oom_info_lock ensures 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];
 -      int ret;
        struct mem_cgroup *iter;
        unsigned int i;
  
        if (!p)
                return;
  
-       spin_lock(&oom_info_lock);
+       mutex_lock(&oom_info_lock);
        rcu_read_lock();
  
 -      mem_cgrp = memcg->css.cgroup;
 -      task_cgrp = task_cgroup(p, mem_cgroup_subsys_id);
 -
 -      ret = cgroup_path(task_cgrp, memcg_name, PATH_MAX);
 -      if (ret < 0) {
 -              /*
 -               * Unfortunately, we are unable to convert to a useful name
 -               * But we'll still print out the usage information
 -               */
 -              rcu_read_unlock();
 -              goto done;
 -      }
 -      rcu_read_unlock();
 -
 -      pr_info("Task in %s killed", memcg_name);
 +      pr_info("Task in ");
 +      pr_cont_cgroup_path(task_cgroup(p, memory_cgrp_id));
 +      pr_info(" killed as a result of limit of ");
 +      pr_cont_cgroup_path(memcg->css.cgroup);
 +      pr_info("\n");
  
 -      rcu_read_lock();
 -      ret = cgroup_path(mem_cgrp, memcg_name, PATH_MAX);
 -      if (ret < 0) {
 -              rcu_read_unlock();
 -              goto done;
 -      }
        rcu_read_unlock();
  
 -      /*
 -       * Continues from above, so we don't need an KERN_ level
 -       */
 -      pr_cont(" as a result of limit of %s\n", memcg_name);
 -done:
 -
        pr_info("memory: usage %llukB, limit %llukB, failcnt %llu\n",
                res_counter_read_u64(&memcg->res, RES_USAGE) >> 10,
                res_counter_read_u64(&memcg->res, RES_LIMIT) >> 10,

Attachment: pgp1pOE08oTtJ.pgp
Description: PGP signature

Reply via email to