From: Li Zefan <lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
To: Benjamin Blum <bblum-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Cc: containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
menage-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org
Subject: Re: [PATCH 6/6] Makes procs file writable to move all threads by tgid at once
Date: Tue, 04 Aug 2009 09:09:29 +0800 [thread overview]
Message-ID: <4A778A49.6040302@cn.fujitsu.com> (raw)
In-Reply-To: <2f86c2480908031756j557e7aebmbf7951da6a1aadb0-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
Benjamin Blum wrote:
> On Sun, Aug 2, 2009 at 8:00 PM, Li Zefan<lizf-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org> wrote:
>> Ben Blum wrote:
>>> + }
>>> + write_unlock(&css_set_lock);
>>> +
>>> + /*
>>> + * We just gained a reference on oldcg by taking it from the task. As
>> This comment is incorrect, the ref we just got has been dropped by
>> the above put_css_set(oldcg).
>
> No, the idea is that even though we had a reference that we already
> dropped, we in effect "traded" the newcg to the task for its oldcg,
> giving it our reference on newcg and gaining its reference on oldcg. I
> believe the cgroup_mutex guarantees that it'll still be there when we
> do the trade - perhaps a BUG_ON(tsk->cgroups != oldcg) is wanted
> inside the second task_lock section there? At the very least, a
> clearer comment.
>
Maybe my English sucks..
By "gained a reference", doesn't it mean get_css_set()? But this
put_css_set() is not against the get() just called.
And in fact the ref can be 0 before this put(), because task_exit
can drop the last ref, but put_css_set() will check this case,
so it's Ok.
>>> +static int css_set_check_fetched(struct cgroup *cgrp, struct task_struct *tsk,
>>> + struct css_set *cg,
>>> + struct list_head *newcg_list)
>>> +{
>>> + struct css_set *newcg;
>>> + struct cg_list_entry *cg_entry;
>>> + struct cgroup_subsys_state *template[CGROUP_SUBSYS_COUNT];
>>> + read_lock(&css_set_lock);
>>> + newcg = find_existing_css_set(cg, cgrp, template);
>>> + if (newcg)
>>> + get_css_set(newcg);
>>> + read_unlock(&css_set_lock);
>>> + /* doesn't exist at all? */
>>> + if (!newcg)
>>> + return 1;
>> I think it's more intuitive to return 1 if found and 0 if not found.
>
> I was sticking with the convention of nonzero return values indicating
> failure, as is used everywhere else in this context.
>
Quoted from Documentation/CodingStyle:
...Such a value can be represented as an error-code integer
(-Exxx = failure, 0 = success) or a "succeeded" boolean (0 = failure,
non-zero = success).
next prev parent reply other threads:[~2009-08-04 1:09 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20090731012908.27908.62208.stgit@hastromil.mtv.corp.google.com>
[not found] ` <20090731012908.27908.62208.stgit-/yCBOHwbXCxd3OlUiQof+WCaruZE5nAUZeezCHUQhQ4@public.gmane.org>
2009-07-31 1:51 ` [PATCH 1/6] Adds a read-only "procs" file similar to "tasks" that shows only unique tgids Ben Blum
2009-07-31 1:51 ` [PATCH 2/6] Ensures correct concurrent opening/reading of pidlists across pid namespaces Ben Blum
2009-07-31 1:51 ` [PATCH 3/6] Quick vmalloc vs kmalloc fix to the case where array size is too large Ben Blum
2009-07-31 1:51 ` [PATCH 4/6] Changes css_set freeing mechanism to be under RCU Ben Blum
2009-07-31 1:51 ` [PATCH 5/6] Lets ss->can_attach and ss->attach do whole threadgroups at a time Ben Blum
2009-07-31 1:51 ` [PATCH 6/6] Makes procs file writable to move all threads by tgid at once Ben Blum
[not found] ` <20090731015149.27908.25403.stgit@hastromil.mtv.corp.google.com>
[not found] ` <20090731015149.27908.25403.stgit-/yCBOHwbXCxd3OlUiQof+WCaruZE5nAUZeezCHUQhQ4@public.gmane.org>
2009-08-03 2:22 ` [PATCH 5/6] Lets ss->can_attach and ss->attach do whole threadgroups at a time Li Zefan
[not found] ` <4A7649E1.4000200@cn.fujitsu.com>
[not found] ` <4A7649E1.4000200-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-08-04 0:35 ` Benjamin Blum
[not found] ` <20090731015154.27908.9639.stgit@hastromil.mtv.corp.google.com>
[not found] ` <20090731015154.27908.9639.stgit-/yCBOHwbXCxd3OlUiQof+WCaruZE5nAUZeezCHUQhQ4@public.gmane.org>
2009-08-03 3:00 ` [PATCH 6/6] Makes procs file writable to move all threads by tgid at once Li Zefan
2009-08-03 17:54 ` Serge E. Hallyn
[not found] ` <20090803175452.GA5481@us.ibm.com>
[not found] ` <20090803175452.GA5481-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-08-03 18:07 ` Paul Menage
2009-08-03 18:13 ` Benjamin Blum
[not found] ` <2f86c2480908031113y525b6cbdhe418b8a0364c7760@mail.gmail.com>
[not found] ` <2f86c2480908031113y525b6cbdhe418b8a0364c7760-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-03 18:55 ` Serge E. Hallyn
[not found] ` <20090803185556.GA8469@us.ibm.com>
[not found] ` <20090803185556.GA8469-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-08-03 19:45 ` Serge E. Hallyn
[not found] ` <20090803194555.GA10158@us.ibm.com>
[not found] ` <20090803194555.GA10158-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-08-03 19:55 ` Paul Menage
2009-08-04 18:48 ` Paul Menage
[not found] ` <6599ad830908041148h6d3f3e9bxfef9f3eedec0ab6d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-04 19:01 ` Serge E. Hallyn
2009-08-04 19:14 ` Benjamin Blum
[not found] ` <2f86c2480908041214r1f23c1b7q9a25b04e26c92a1a-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-04 19:28 ` Paul Menage
[not found] ` <6599ad830908041228w67bc6f7fh57e28f244e1923b3-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-05 10:20 ` Louis Rilling
[not found] ` <20090805102057.GT29252@hawkmoon.kerlabs.com>
[not found] ` <20090805102057.GT29252-Hu8+6S1rdjywhHL9vcZdMVaTQe2KTcn/@public.gmane.org>
2009-08-05 16:11 ` Paul Menage
[not found] ` <6599ad830908050911t6f23f810i65fe8fe17f3ee698-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-05 16:42 ` Louis Rilling
[not found] ` <20090805164218.GB26446@hawkmoon.kerlabs.com>
[not found] ` <20090805164218.GB26446-Hu8+6S1rdjywhHL9vcZdMVaTQe2KTcn/@public.gmane.org>
2009-08-05 16:53 ` Peter Zijlstra
2009-08-06 0:01 ` Benjamin Blum
[not found] ` <2f86c2480908051701s57120404q475edbedb58cdca1@mail.gmail.com>
[not found] ` <2f86c2480908051701s57120404q475edbedb58cdca1-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-06 9:58 ` Louis Rilling
[not found] ` <20090806095854.GD26446@hawkmoon.kerlabs.com>
[not found] ` <20090806095854.GD26446-Hu8+6S1rdjywhHL9vcZdMVaTQe2KTcn/@public.gmane.org>
2009-08-06 10:04 ` Louis Rilling
2009-08-06 10:28 ` Paul Menage
[not found] ` <6599ad830908060328y21a008c1pc5ed5c27e0ec905d-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-06 10:34 ` Peter Zijlstra
2009-08-06 10:42 ` Paul Menage
[not found] ` <6599ad830908060342m1fc8cdd2me25af248a8e0e183@mail.gmail.com>
[not found] ` <6599ad830908060342m1fc8cdd2me25af248a8e0e183-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-06 11:02 ` Peter Zijlstra
[not found] ` <1249556540.32113.191.camel@twins>
2009-08-06 11:24 ` Paul Menage
[not found] ` <6599ad830908060424r72e1aa12g2b246785e7bc039c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-06 11:39 ` Peter Zijlstra
[not found] ` <1249558761.32113.262.camel@twins>
2009-08-06 15:19 ` Paul E. McKenney
[not found] ` <20090806151922.GB6747-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2009-08-06 15:24 ` Peter Zijlstra
[not found] ` <1249572286.32113.527.camel@twins>
2009-08-06 15:37 ` Paul E. McKenney
2009-08-06 11:24 ` Louis Rilling
[not found] ` <20090806112450.GF26446-Hu8+6S1rdjywhHL9vcZdMVaTQe2KTcn/@public.gmane.org>
2009-08-06 11:40 ` Paul Menage
[not found] ` <6599ad830908060440g2f6cbed6xdc54c7096cd3745e@mail.gmail.com>
[not found] ` <6599ad830908060440g2f6cbed6xdc54c7096cd3745e-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-06 14:54 ` Louis Rilling
2009-08-08 1:41 ` Benjamin Blum
[not found] ` <2f86c2480908071841h13009856hd8fcae167b1fadbf@mail.gmail.com>
[not found] ` <2f86c2480908071841h13009856hd8fcae167b1fadbf-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-08 1:51 ` Benjamin Blum
[not found] ` <6599ad830908031255j68ce047x7165bfefa62ed53c@mail.gmail.com>
[not found] ` <6599ad830908031255j68ce047x7165bfefa62ed53c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-04 14:01 ` Serge E. Hallyn
2009-08-04 21:40 ` Matt Helsley
[not found] ` <4A7652E7.4020206@cn.fujitsu.com>
[not found] ` <4A7652E7.4020206-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-08-04 0:56 ` Benjamin Blum
[not found] ` <2f86c2480908031756j557e7aebmbf7951da6a1aadb0@mail.gmail.com>
[not found] ` <2f86c2480908031756j557e7aebmbf7951da6a1aadb0-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-04 1:05 ` Paul Menage
2009-08-04 1:09 ` Li Zefan [this message]
[not found] ` <4A778A49.6040302-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-08-04 1:19 ` Benjamin Blum
[not found] ` <2f86c2480908031819h2513cdb4tac3d6def3e0aa320@mail.gmail.com>
[not found] ` <2f86c2480908031819h2513cdb4tac3d6def3e0aa320-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-04 1:45 ` Li Zefan
[not found] ` <4A7792C4.5010504@cn.fujitsu.com>
[not found] ` <4A7792C4.5010504-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
2009-08-04 1:55 ` Paul Menage
[not found] ` <6599ad830908031805y31136eceqeff0bab455100d6c@mail.gmail.com>
[not found] ` <6599ad830908031805y31136eceqeff0bab455100d6c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-08-04 1:11 ` Benjamin Blum
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=4A778A49.6040302@cn.fujitsu.com \
--to=lizf-bthxqxjhjhxqfuhtdcdx3a@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=bblum-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=menage-hpIqsD4AKlfQT0dZR+AlfA@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