Messages in this thread | | | Date | Fri, 09 Jan 2015 17:43:17 +0000 | From | "Suzuki K. Poulose" <> | Subject | [Regression] 3.19-rc3 : memcg: Hang in mount memcg |
| |
Hi
We have hit a hang on ARM64 defconfig, while running LTP tests on 3.19-rc3. We are in the process of a git bisect and will update the results as and when we find the commit.
During the ksm ltp run, the test hangs trying to mount memcg with the following strace output:
mount("memcg", "/dev/cgroup", "cgroup", 0, "memory") = ? ERESTARTNOINTR (To be restarted) mount("memcg", "/dev/cgroup", "cgroup", 0, "memory") = ? ERESTARTNOINTR (To be restarted) [ ... repeated forever ... ]
At this point, one can try mounting the memcg to verify the problem. # mount -t cgroup -o memory memcg memcg_dir --hangs--
Strangely, if we run the mount command from a cold boot (i.e. without running LTP first), then it succeeds.
Upon a quick look we are hitting the following code : kernel/cgroup.c: cgroup_mount() :
1779 for_each_subsys(ss, i) { 1780 if (!(opts.subsys_mask & (1 << i)) || 1781 ss->root == &cgrp_dfl_root) 1782 continue; 1783 1784 if (!percpu_ref_tryget_live(&ss->root->cgrp.self.refcnt)) { 1785 mutex_unlock(&cgroup_mutex); 1786 msleep(10); 1787 ret = restart_syscall(); <===== 1788 goto out_free; 1789 } 1790 cgroup_put(&ss->root->cgrp); 1791 }
with ss->root->cgrp.self.refct.percpu_count_ptr == __PERCPU_REF_ATOMIC_DEAD
Any ideas?
Thanks Suzuki
| |