[PATCH] cgroup: use read lock to guard find_existing_css_set() [message #29720] |
Wed, 23 April 2008 03:04  |
Li Zefan
Messages: 90 Registered: February 2008
|
Member |
|
|
The function does not modify anything (except the temporary
css template), so it's sufficient to hold read lock.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
kernel/cgroup.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 2727f92..e9eb5da 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -406,11 +406,11 @@ static struct css_set *find_css_set(
/* First see if we already have a cgroup group that matches
* the desired set */
- write_lock(&css_set_lock);
+ read_lock(&css_set_lock);
res = find_existing_css_set(oldcg, cgrp, template);
if (res)
get_css_set(res);
- write_unlock(&css_set_lock);
+ read_unlock(&css_set_lock);
if (res)
return res;
-- 1.5.4.rc3
_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
|
|
|
Re: [PATCH] cgroup: use read lock to guard find_existing_css_set() [message #29722 is a reply to message #29720] |
Wed, 23 April 2008 06:48   |
Paul Menage
Messages: 642 Registered: September 2006
|
Senior Member |
|
|
On Tue, Apr 22, 2008 at 8:04 PM, Li Zefan <lizf@cn.fujitsu.com> wrote:
> The function does not modify anything (except the temporary
> css template), so it's sufficient to hold read lock.
>
> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Paul Menage <menage@google.com>
Thanks.
> ---
> kernel/cgroup.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/cgroup.c b/kernel/cgroup.c
> index 2727f92..e9eb5da 100644
> --- a/kernel/cgroup.c
> +++ b/kernel/cgroup.c
> @@ -406,11 +406,11 @@ static struct css_set *find_css_set(
>
> /* First see if we already have a cgroup group that matches
> * the desired set */
> - write_lock(&css_set_lock);
> + read_lock(&css_set_lock);
> res = find_existing_css_set(oldcg, cgrp, template);
> if (res)
> get_css_set(res);
> - write_unlock(&css_set_lock);
> + read_unlock(&css_set_lock);
>
> if (res)
> return res;
> -- 1.5.4.rc3
>
>
_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
|
|
|
Re: [PATCH] cgroup: use read lock to guard find_existing_css_set() [message #29723 is a reply to message #29720] |
Wed, 23 April 2008 06:48   |
Balbir Singh
Messages: 491 Registered: August 2006
|
Senior Member |
|
|
Li Zefan wrote:
> The function does not modify anything (except the temporary
> css template), so it's sufficient to hold read lock.
>
> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
> ---
> kernel/cgroup.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/cgroup.c b/kernel/cgroup.c
> index 2727f92..e9eb5da 100644
> --- a/kernel/cgroup.c
> +++ b/kernel/cgroup.c
> @@ -406,11 +406,11 @@ static struct css_set *find_css_set(
>
> /* First see if we already have a cgroup group that matches
> * the desired set */
> - write_lock(&css_set_lock);
> + read_lock(&css_set_lock);
> res = find_existing_css_set(oldcg, cgrp, template);
> if (res)
> get_css_set(res);
> - write_unlock(&css_set_lock);
> + read_unlock(&css_set_lock);
>
> if (res)
> return res;
Looks good to me. Did you run lockdep?
--
Warm Regards,
Balbir Singh
Linux Technology Center
IBM, ISTL
_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
|
|
|
Re: [PATCH] cgroup: use read lock to guard find_existing_css_set() [message #29747 is a reply to message #29723] |
Thu, 24 April 2008 01:00  |
Li Zefan
Messages: 90 Registered: February 2008
|
Member |
|
|
Balbir Singh wrote:
> Li Zefan wrote:
>> The function does not modify anything (except the temporary
>> css template), so it's sufficient to hold read lock.
>>
>> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
>> ---
>> kernel/cgroup.c | 4 ++--
>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/kernel/cgroup.c b/kernel/cgroup.c
>> index 2727f92..e9eb5da 100644
>> --- a/kernel/cgroup.c
>> +++ b/kernel/cgroup.c
>> @@ -406,11 +406,11 @@ static struct css_set *find_css_set(
>>
>> /* First see if we already have a cgroup group that matches
>> * the desired set */
>> - write_lock(&css_set_lock);
>> + read_lock(&css_set_lock);
>> res = find_existing_css_set(oldcg, cgrp, template);
>> if (res)
>> get_css_set(res);
>> - write_unlock(&css_set_lock);
>> + read_unlock(&css_set_lock);
>>
>> if (res)
>> return res;
>
> Looks good to me. Did you run lockdep?
>
No, I found this when reading the code, but I do have done some test.
_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
|
|
|