cgroup: use read lock to guard find_existing_css_set()
PATCH 1/1 cgroup: use read lock to guard find_existing_css_set()
The function does not modify anything (except the temporary css template), so it's sufficient to hold read lock.
--- kernel/cgroup.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
kernel/cgroup.c +2 -2
@@ -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
A message that is not in the archive (sent off-list or not yet received): [email protected]
Paul Menage
Acked-byQuoted 4 lines · Li Zefan
The function does not modify anything (except the temporary
css template), so it's sufficient to hold read lock.Signed-off-by Li Zefan <[email protected]>
Thanks.
Quoted 25 lines
---
kernel/cgroup.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)diff --git
a/kernel/cgroup.cb/kernel/cgroup.cindex 2727f92..e9eb5da 100644
---a/kernel/cgroup.c
+++b/kernel/cgroup.c
@@ -406,11 +406,11 @@ static structcss_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
Quoted 16 lines · Li Zefan
The function does not modify anything (except the temporary css template), so it's sufficient to hold read lock.
Signed-off-by Li Zefan <[email protected]>--- kernel/cgroup.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)kernel/cgroup.c +0
-0@@ -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 */
kernel/cgroup.c static struct css_set *find_css_set( · line 416
Quoted 10 lines
kernel/cgroup.c +2
-2-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?
Signature · 4 lines
Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL
Quoted 4 lines · Li Zefan
The function does not modify anything (except the temporary
css template), so it's sufficient to hold read lock.Signed-off-by Li Zefan <[email protected]>
Thanks.
Quoted 25 lines
---
kernel/cgroup.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)diff --git
a/kernel/cgroup.cb/kernel/cgroup.cindex 2727f92..e9eb5da 100644
---a/kernel/cgroup.c
+++b/kernel/cgroup.c
@@ -406,11 +406,11 @@ static structcss_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
Quoted 16 lines · Li Zefan
The function does not modify anything (except the temporary css template), so it's sufficient to hold read lock.
Signed-off-by Li Zefan <[email protected]>--- kernel/cgroup.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)kernel/cgroup.c +0
-0@@ -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 */
kernel/cgroup.c static struct css_set *find_css_set( · line 416
Quoted 10 lines
kernel/cgroup.c +2
-2-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?
Signature · 4 lines
Warm Regards, Balbir Singh Linux Technology Center IBM, ISTL
A message that is not in the archive (sent off-list or not yet received): 480EDBD2.2060709-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org
Quoted 25 lines · Balbir Singh
Quoted 24 lines · Li Zefan
The function does not modify anything (except the temporary css template), so it's sufficient to hold read lock.
Signed-off-by Li Zefan <[email protected]>--- kernel/cgroup.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)kernel/cgroup.c +2
-2@@ -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);
Quoted 5 lines
kernel/cgroup.c static struct css_set *find_css_set( · line 416
Quoted 2 lines
kernel/cgroup.c +0
-0if (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.
Quoted 25 lines · Balbir Singh
Quoted 24 lines · Li Zefan
The function does not modify anything (except the temporary css template), so it's sufficient to hold read lock.
Signed-off-by Li Zefan <[email protected]>--- kernel/cgroup.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)kernel/cgroup.c +2
-2@@ -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);
Quoted 5 lines
kernel/cgroup.c static struct css_set *find_css_set( · line 416
Quoted 2 lines
kernel/cgroup.c +0
-0if (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.