From: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Mandeep Singh Baines <msb-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: Li Zefan <lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>,
LKML <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Frederic Weisbecker
<fweisbec-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
KAMEZAWA Hiroyuki
<kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>,
Oleg Nesterov <oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Andrew Morton
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
Paul Menage <paul-inf54ven1CmVyaH7bEyXVA@public.gmane.org>
Subject: Re: [PATCH 4/5] cgroup: remove extra calls to find_existing_css_set
Date: Tue, 20 Dec 2011 15:30:50 -0800 [thread overview]
Message-ID: <20111220233050.GM10752@google.com> (raw)
In-Reply-To: <1324422873-31001-5-git-send-email-msb-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Hello,
On Tue, Dec 20, 2011 at 03:14:32PM -0800, Mandeep Singh Baines wrote:
> @@ -1942,9 +1917,17 @@ int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk)
> }
> }
>
> - retval = cgroup_task_migrate(cgrp, oldcgrp, tsk, false);
> - if (retval)
> + task_lock(tsk);
> + oldcg = tsk->cgroups;
> + task_unlock(tsk);
Probably this is patch order issue w/ Frederic's patch but we don't
need task_lock here, right?
> @@ -2171,17 +2088,18 @@ int cgroup_attach_proc(struct cgroup *cgrp, struct task_struct *leader)
> * step 2: make sure css_sets exist for all threads to be migrated.
> * we use find_css_set, which allocates a new one if necessary.
> */
> - INIT_LIST_HEAD(&newcg_list);
> for (i = 0; i < group_size; i++) {
> tc = flex_array_get(group, i);
> /* get old css_set pointer */
> task_lock(tc->task);
> oldcg = tc->task->cgroups;
> task_unlock(tc->task);
> - /* if we don't already have it in the list get a new one */
> - if (!css_set_fetched(cgrp, tc->task, oldcg, &newcg_list))
> - if (retval = css_set_prefetch(cgrp, oldcg, &newcg_list))
> - goto out_list_teardown;
> + tc->cg = find_css_set(oldcg, cgrp);
> + if (!tc->cg) {
> + retval = -ENOMEM;
> + css_set_refs = i + 1;
> + goto out_list_teardown;
> + }
Nice cleanup, but can't the above be merged into the loop which builds
the flex array?
Thanks.
--
tejun
WARNING: multiple messages have this Message-ID (diff)
From: Tejun Heo <tj@kernel.org>
To: Mandeep Singh Baines <msb@chromium.org>
Cc: Li Zefan <lizf@cn.fujitsu.com>,
LKML <linux-kernel@vger.kernel.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
containers@lists.linux-foundation.org, cgroups@vger.kernel.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Oleg Nesterov <oleg@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Paul Menage <paul@paulmenage.org>
Subject: Re: [PATCH 4/5] cgroup: remove extra calls to find_existing_css_set
Date: Tue, 20 Dec 2011 15:30:50 -0800 [thread overview]
Message-ID: <20111220233050.GM10752@google.com> (raw)
In-Reply-To: <1324422873-31001-5-git-send-email-msb@chromium.org>
Hello,
On Tue, Dec 20, 2011 at 03:14:32PM -0800, Mandeep Singh Baines wrote:
> @@ -1942,9 +1917,17 @@ int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk)
> }
> }
>
> - retval = cgroup_task_migrate(cgrp, oldcgrp, tsk, false);
> - if (retval)
> + task_lock(tsk);
> + oldcg = tsk->cgroups;
> + task_unlock(tsk);
Probably this is patch order issue w/ Frederic's patch but we don't
need task_lock here, right?
> @@ -2171,17 +2088,18 @@ int cgroup_attach_proc(struct cgroup *cgrp, struct task_struct *leader)
> * step 2: make sure css_sets exist for all threads to be migrated.
> * we use find_css_set, which allocates a new one if necessary.
> */
> - INIT_LIST_HEAD(&newcg_list);
> for (i = 0; i < group_size; i++) {
> tc = flex_array_get(group, i);
> /* get old css_set pointer */
> task_lock(tc->task);
> oldcg = tc->task->cgroups;
> task_unlock(tc->task);
> - /* if we don't already have it in the list get a new one */
> - if (!css_set_fetched(cgrp, tc->task, oldcg, &newcg_list))
> - if (retval = css_set_prefetch(cgrp, oldcg, &newcg_list))
> - goto out_list_teardown;
> + tc->cg = find_css_set(oldcg, cgrp);
> + if (!tc->cg) {
> + retval = -ENOMEM;
> + css_set_refs = i + 1;
> + goto out_list_teardown;
> + }
Nice cleanup, but can't the above be merged into the loop which builds
the flex array?
Thanks.
--
tejun
next prev parent reply other threads:[~2011-12-20 23:30 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-20 23:14 [PATCH 0/5] cgroup: some cleanups of cgroup_attach_proc Mandeep Singh Baines
[not found] ` <1324422873-31001-1-git-send-email-msb-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-20 23:14 ` [PATCH 1/5 V3] cgroup: remove redundate get/put of old css_set from migrate Mandeep Singh Baines
2011-12-20 23:14 ` Mandeep Singh Baines
2011-12-20 23:14 ` Mandeep Singh Baines
[not found] ` <1324422873-31001-2-git-send-email-msb-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-20 23:18 ` Tejun Heo
2011-12-20 23:18 ` Tejun Heo
2011-12-20 23:18 ` Tejun Heo
[not found] ` <20111220231823.GK10752-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-20 23:41 ` Mandeep Singh Baines
2011-12-20 23:41 ` Mandeep Singh Baines
[not found] ` <20111220234131.GV13529-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-20 23:42 ` Tejun Heo
2011-12-20 23:42 ` Tejun Heo
[not found] ` <20111220234259.GO10752-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-20 23:46 ` Tejun Heo
2011-12-20 23:46 ` Tejun Heo
2011-12-20 23:46 ` Tejun Heo
2011-12-21 1:10 ` Li Zefan
2011-12-21 1:10 ` Li Zefan
2011-12-21 1:10 ` Li Zefan
2011-12-20 23:14 ` [PATCH 2/5] cgroup: remove redundant get/put of task struct Mandeep Singh Baines
2011-12-20 23:14 ` Mandeep Singh Baines
2011-12-20 23:14 ` Mandeep Singh Baines
[not found] ` <1324422873-31001-3-git-send-email-msb-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-20 23:23 ` Tejun Heo
2011-12-20 23:23 ` Tejun Heo
[not found] ` <20111220232326.GL10752-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-21 0:04 ` Mandeep Singh Baines
2011-12-21 0:04 ` Mandeep Singh Baines
2011-12-21 0:04 ` Mandeep Singh Baines
2011-12-20 23:14 ` [PATCH 3/5] cgroup: only need to check oldcgrp==newgrp once Mandeep Singh Baines
2011-12-20 23:14 ` Mandeep Singh Baines
2011-12-20 23:14 ` Mandeep Singh Baines
[not found] ` <1324422873-31001-4-git-send-email-msb-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-21 1:29 ` Li Zefan
2011-12-21 1:29 ` Li Zefan
2011-12-20 23:14 ` [PATCH 4/5] cgroup: remove extra calls to find_existing_css_set Mandeep Singh Baines
2011-12-20 23:14 ` Mandeep Singh Baines
2011-12-20 23:14 ` Mandeep Singh Baines
[not found] ` <1324422873-31001-5-git-send-email-msb-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-20 23:30 ` Tejun Heo
2011-12-20 23:30 ` Tejun Heo [this message]
2011-12-20 23:30 ` Tejun Heo
[not found] ` <20111220233050.GM10752-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-20 23:47 ` Mandeep Singh Baines
2011-12-20 23:47 ` Mandeep Singh Baines
2011-12-20 23:47 ` Mandeep Singh Baines
2011-12-20 23:14 ` [PATCH 5/5] cgroup: separate out cgroup_attach_proc error handling code Mandeep Singh Baines
2011-12-20 23:14 ` Mandeep Singh Baines
2011-12-20 23:14 ` Mandeep Singh Baines
[not found] ` <1324422873-31001-6-git-send-email-msb-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2011-12-20 23:35 ` Tejun Heo
2011-12-20 23:35 ` Tejun Heo
2011-12-20 23:35 ` Tejun Heo
[not found] ` <20111220233502.GN10752-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-21 0:02 ` Mandeep Singh Baines
2011-12-21 0:02 ` Mandeep Singh Baines
[not found] ` <20111221000231.GX13529-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2011-12-21 0:13 ` Tejun Heo
2011-12-21 0:13 ` Tejun Heo
2011-12-21 0:13 ` Tejun Heo
2011-12-21 0:02 ` Mandeep Singh Baines
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=20111220233050.GM10752@google.com \
--to=tj-dgejt+ai2ygdnm+yrofe0a@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=fweisbec-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org \
--cc=msb-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=oleg-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=paul-inf54ven1CmVyaH7bEyXVA@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.