ping...
On 2014/4/10 16:09, Weng Meiling wrote:
> Cgred just migrate forked process when the parent's cgroup is changed,
> so that the forked process can stay in the same cgroup which match the
> cgred rules with it's parent. But there is a situation when parent process
> fork a child process, and exited before it moved into the cgroup matched
> the rules successfullly. The forked child process is also failed into the
> cgroup. This result is inconsistent with rules. So this patch fix the
> problem. Just apply rule for forked process when parent process exited
> when forking.
> 
> But I'm not sure whether the fix is suitable. Because the other way(just 
> remove
> the cgre_was_parent_changed_when_forking() for forked processes) will affect
> cgclassify --sticky. But this way is not which I have done some test.
> 
> Signed-off-by: Weng Meiling <wengmeiling.w...@huawei.com>
> ---
>  src/daemon/cgrulesengd.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/src/daemon/cgrulesengd.c b/src/daemon/cgrulesengd.c
> index 367b898..5e254c8 100644
> --- a/src/daemon/cgrulesengd.c
> +++ b/src/daemon/cgrulesengd.c
> @@ -265,6 +265,8 @@ static int cgre_was_parent_changed_when_forking(const 
> struct proc_event *ev)
>       pid_t parent_pid;
>       __u64 timestamp_child;
>       __u64 timestamp_parent;
> +     char path[FILENAME_MAX];
> +     struct stat buff_stat;
> 
>       parent_pid = ev->event_data.fork.parent_pid;
>       timestamp_child = ev->timestamp_ns;
> @@ -279,6 +281,9 @@ static int cgre_was_parent_changed_when_forking(const 
> struct proc_event *ev)
>                       continue;
>               return 1;
>       }
> +     sprintf(path, "/proc/%d", parent_pid);
> +     if (stat(path, &buff_stat) < 0)
> +             return 1;
>       return 0;
>  }
> 



------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
Libcg-devel mailing list
Libcg-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to