From: "Serge E. Hallyn" <serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
To: Sergey Senozhatsky
<sergey.senozhatsky-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Stephen Rothwell <sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org>,
gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-next-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org,
lxc-devel-cunTk1MwBs9qMoObBWhMNEqPaTDuhLve2LY78lusg7I@public.gmane.org,
hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org,
tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org
Subject: Re: [PATCH 6/8] cgroup: mount cgroupns-root when inside non-init cgroupns
Date: Thu, 31 Dec 2015 18:58:43 -0600 [thread overview]
Message-ID: <20160101005843.GA26243@mail.hallyn.com> (raw)
In-Reply-To: <20151231133822.GA463@swordfish>
On Thu, Dec 31, 2015 at 10:38:22PM +0900, Sergey Senozhatsky wrote:
> On (12/22/15 22:23), serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org wrote:
> [..]
> > root = kzalloc(sizeof(*root), GFP_KERNEL);
> > if (!root) {
> > ret = -ENOMEM;
> > @@ -2124,12 +2143,30 @@ out_free:
> > kfree(opts.release_agent);
> > kfree(opts.name);
> >
> > - if (ret)
> > + if (ret) {
> > + put_cgroup_ns(ns);
> > return ERR_PTR(ret);
> > + }
> > out_mount:
> > dentry = kernfs_mount(fs_type, flags, root->kf_root,
> > is_v2 ? CGROUP2_SUPER_MAGIC : CGROUP_SUPER_MAGIC,
> > &new_sb);
> > +
> > + /*
> > + * In non-init cgroup namespace, instead of root cgroup's
> > + * dentry, we return the dentry corresponding to the
> > + * cgroupns->root_cgrp.
> > + */
> > + if (!IS_ERR(dentry) && ns != &init_cgroup_ns) {
> > + struct dentry *nsdentry;
> > + struct cgroup *cgrp;
> > +
> > + cgrp = cset_cgroup_from_root(ns->root_cset, root);
> > + nsdentry = kernfs_node_dentry(cgrp->kn, dentry->d_sb);
> > + dput(dentry);
> > + dentry = nsdentry;
> > + }
> > +
> > if (IS_ERR(dentry) || !new_sb)
> > cgroup_put(&root->cgrp);
> >
> > @@ -2142,6 +2179,7 @@ out_mount:
> > deactivate_super(pinned_sb);
> > }
> >
> > + put_cgroup_ns(ns);
> > return dentry;
> > }
>
> Hello,
>
> didn't investigate, just let you know that I'm seeing some warning on linux-next 20151231
>
> 1159 is lockdep_assert_held(&css_set_lock)
>
> [ 2.880978] WARNING: CPU: 1 PID: 198 at kernel/cgroup.c:1159 cset_cgroup_from_root+0xa8/0xaf()
> [ 2.880981] Modules linked in: mousedev arc4 nls_iso8859_1 nls_cp437 vfat fat serio_raw iwlmvm psmouse i915 atkbd mac80211 libps2 mxm_wmi i2c_algo_bit drm_kms_helper coretemp cfbfillrect iwlwifi syscopyarea hwmon cfbimgblt crc32c_intel sysfillrect sysimgblt fb_sys_fops cfg80211 ie31200_edac cfbcopyarea evdev r8169 lpc_ich drm i2c_i801 mii intel_gtt edac_core i2c_core mfd_core thermal video i8042 wmi serio button acpi_cpufreq ext4 crc16 mbcache jbd2 sd_mod ehci_pci ehci_hcd ahci libahci libata xhci_pci scsi_mod xhci_hcd usbcore usb_common
> [ 2.881040] CPU: 1 PID: 198 Comm: kworker/1:2 Tainted: G W 4.4.0-rc7-next-20151231-dbg-00012-gc1e64b7-dirty #316
> [ 2.881045] Workqueue: events cgroup_release_agent
> [ 2.881048] 0000000000000000 ffff88041b7f3cb8 ffffffff811e8bc6 0000000000000000
> [ 2.881053] ffff88041b7f3cf0 ffffffff81040889 ffffffff810b2d27 ffffffff8163f3c0
> [ 2.881057] ffff88041cc84000 ffff88041b7c0000 ffff88042fa58a00 ffff88041b7f3d00
> [ 2.881062] Call Trace:
> [ 2.881068] [<ffffffff811e8bc6>] dump_stack+0x4b/0x63
> [ 2.881073] [<ffffffff81040889>] warn_slowpath_common+0x99/0xb2
> [ 2.881076] [<ffffffff810b2d27>] ? cset_cgroup_from_root+0xa8/0xaf
> [ 2.881080] [<ffffffff81040955>] warn_slowpath_null+0x1a/0x1c
> [ 2.881083] [<ffffffff810b2d27>] cset_cgroup_from_root+0xa8/0xaf
> [ 2.881086] [<ffffffff810b58a4>] cgroup_path+0x51/0x83
> [ 2.881090] [<ffffffff810b59fa>] cgroup_release_agent+0x75/0xed
> [ 2.881094] [<ffffffff810566ea>] process_one_work+0x292/0x54b
> [ 2.881098] [<ffffffff81057826>] worker_thread+0x291/0x383
> [ 2.881102] [<ffffffff81057595>] ? rescuer_thread+0x2cf/0x2cf
> [ 2.881105] [<ffffffff8105c603>] kthread+0xf8/0x100
> [ 2.881108] [<ffffffff8105c50b>] ? kthread_create_on_node+0x1c7/0x1c7
> [ 2.881114] [<ffffffff813b71bf>] ret_from_fork+0x3f/0x70
> [ 2.881117] [<ffffffff8105c50b>] ? kthread_create_on_node+0x1c7/0x1c7
> [ 2.881119] ---[ end trace aa407df654d6b05d ]---
Thanks! Following trivial patch should fix this:
From fc54592077533ff2ff90ed54b72bf03b4378ca9f Mon Sep 17 00:00:00 2001
From: Serge Hallyn <serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
Date: Thu, 31 Dec 2015 16:55:19 -0800
Subject: [PATCH 1/1] cgroup_release_agent: grab css_set_lock around
cgroup_path()
Reported-by: Sergey Senozhatsky <sergey.senozhatsky-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Signed-off-by: Serge Hallyn <serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
---
kernel/cgroup.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 4812f59..d10f127 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -5769,7 +5769,9 @@ static void cgroup_release_agent(struct work_struct *work)
if (!pathbuf || !agentbuf)
goto out;
+ spin_lock_bh(&css_set_lock);
path = cgroup_path(cgrp, pathbuf, PATH_MAX);
+ spin_unlock_bh(&css_set_lock);
if (!path)
goto out;
--
2.5.0
next prev parent reply other threads:[~2016-01-01 0:58 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1450844609-9194-1-git-send-email-serge.hallyn@ubuntu.com>
[not found] ` <1450844609-9194-1-git-send-email-serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
2015-12-23 4:23 ` [PATCH 1/8] kernfs: Add API to generate relative kernfs path serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
[not found] ` <1450844609-9194-2-git-send-email-serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
2015-12-23 16:08 ` Tejun Heo
2015-12-23 16:24 ` Tejun Heo
[not found] ` <20151223160854.GF5003@mtj.duckdns.org>
[not found] ` <20151223160854.GF5003-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-23 16:36 ` Serge E. Hallyn
2015-12-23 19:33 ` [PATCH 1/8 v8.2] " Serge E. Hallyn
[not found] ` <20151223162433.GH5003@mtj.duckdns.org>
[not found] ` <20151223162433.GH5003-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-23 16:51 ` [PATCH 1/8] " Greg KH
2015-12-23 4:23 ` [PATCH 2/8] sched: new clone flag CLONE_NEWCGROUP for cgroup namespace serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
2015-12-23 4:23 ` [PATCH 3/8] cgroup: introduce cgroup namespaces serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
[not found] ` <1450844609-9194-4-git-send-email-serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
2015-12-23 16:15 ` Tejun Heo
[not found] ` <20151223161526.GG5003@mtj.duckdns.org>
[not found] ` <20151223161526.GG5003-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-23 19:34 ` [PATCH 3/8 v8.2] " Serge E. Hallyn
2015-12-23 4:23 ` [PATCH 4/8] cgroup: cgroup namespace setns support serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
2015-12-23 4:23 ` [PATCH 5/8] kernfs: define kernfs_node_dentry serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
[not found] ` <1450844609-9194-6-git-send-email-serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
2015-12-23 16:25 ` Tejun Heo
[not found] ` <20151223162515.GI5003@mtj.duckdns.org>
[not found] ` <20151223162515.GI5003-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-23 16:51 ` Greg KH
2015-12-23 4:23 ` [PATCH 6/8] cgroup: mount cgroupns-root when inside non-init cgroupns serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
[not found] ` <1450844609-9194-7-git-send-email-serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
2015-12-31 13:38 ` Sergey Senozhatsky
2016-01-01 0:58 ` Serge E. Hallyn [this message]
[not found] ` <20160101005843.GA26243-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2016-01-01 1:17 ` Sergey Senozhatsky
2016-01-01 1:56 ` Tejun Heo
2015-12-23 4:23 ` [PATCH 7/8] cgroup: Add documentation for cgroup namespaces serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
[not found] ` <1450844609-9194-8-git-send-email-serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
2015-12-28 17:47 ` Tejun Heo
[not found] ` <20151228174735.GB30165@mtj.duckdns.org>
[not found] ` <20151228174735.GB30165-qYNAdHglDFBN0TnZuCh8vA@public.gmane.org>
2015-12-28 21:13 ` Serge Hallyn
[not found] ` <1451337182.3374.34.camel@Nokia-N900>
2015-12-28 21:48 ` [PATCH] " Tejun Heo
2015-12-23 4:23 ` [PATCH 8/8] Add FS_USERNS_FLAG to cgroup fs serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
2015-12-28 17:46 ` CGroup Namespaces (v8) Tejun Heo
2016-01-01 8:19 ` Dan Williams
[not found] ` <CAA9_cmcNeg4vR7Ft8YcPGZtacftDWjC=5mHs2ZRzu9yXoOAJiA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-01-01 8:59 ` Serge E. Hallyn
[not found] ` <20160101085911.GA28407@mail.hallyn.com>
[not found] ` <20160101085911.GA28407-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2016-01-01 9:42 ` Dan Williams
[not found] ` <CAPcyv4iig_sujK=p0TbNjTmtv39N7a0HSqpVe8mLnfX9Es7zNA@mail.gmail.com>
[not found] ` <CAPcyv4iig_sujK=p0TbNjTmtv39N7a0HSqpVe8mLnfX9Es7zNA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-01-01 18:06 ` Serge E. Hallyn
[not found] ` <20160101180633.GA30941-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org>
2016-01-01 19:14 ` Dan Williams
[not found] ` <CAPcyv4iEdP+jMVSFquqCgMiXFgzOSaW40NdG6y2tHRgSKxaOcQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-01-02 11:52 ` Tejun Heo
[not found] <1454057651-23959-1-git-send-email-serge.hallyn@ubuntu.com>
[not found] ` <1454057651-23959-1-git-send-email-serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
2016-01-29 8:54 ` [PATCH 6/8] cgroup: mount cgroupns-root when inside non-init cgroupns serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
2016-01-04 19:54 CGroup Namespaces (v9) serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
[not found] ` <1451937294-22589-1-git-send-email-serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
2016-01-04 19:54 ` [PATCH 6/8] cgroup: mount cgroupns-root when inside non-init cgroupns serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
-- strict thread matches above, loose matches on Subject: below --
2015-12-09 19:28 CGroup Namespaces (v7) serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
[not found] ` <1449689341-28742-1-git-send-email-serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA@public.gmane.org>
2015-12-09 19:28 ` [PATCH 6/8] cgroup: mount cgroupns-root when inside non-init cgroupns serge.hallyn-GeWIH/nMZzLQT0dZR+AlfA
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160101005843.GA26243@mail.hallyn.com \
--to=serge.hallyn-gewih/nmzzlqt0dzr+alfa@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-next-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lxc-devel-cunTk1MwBs9qMoObBWhMNEqPaTDuhLve2LY78lusg7I@public.gmane.org \
--cc=sergey.senozhatsky-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org \
--cc=tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox