> On Sept. 21, 2012, 3:23 a.m., Jie Yu wrote:
> > Ben, I am just curious whether you have observed a case in which a retry is 
> > useful?
> > 
> > From my experience, if a cgroup stucks at FREEZING state (e.g. some process 
> > is in T or Z state), writing FROZEN to retry never brings the state to 
> > FROZEN.
> > 
> > If you do see a case that a retry is useful, let me know.
> 
> Benjamin Hindman wrote:
>     We've actually seen cases in which a process in the cgroup is still in R! 
> It's possible that at the time the kernel could not freeze that process for 
> whatever reason, and so retrying seems to be the only option (although, I 
> hope that it's not the case that the process can never be frozen, which would 
> seem like a pretty serious design issue).

> We've actually seen cases in which a process in the cgroup is still in R!

Maybe this is a kernel bug (race condition?) ;) from my understanding of the 
kernel code, this seems to be impossible...

You can take a look at "kernel/cgroup_freezer.c"

Probably you can start with the function "freezer_write(...)"


- Jie


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/7203/#review11766
-----------------------------------------------------------


On Sept. 21, 2012, 2:02 a.m., Benjamin Hindman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/7203/
> -----------------------------------------------------------
> 
> (Updated Sept. 21, 2012, 2:02 a.m.)
> 
> 
> Review request for mesos, Vinod Kone, Brian Wickman, and Jie Yu.
> 
> 
> Description
> -------
> 
> See summary and 
> http://www.kernel.org/doc/Documentation/cgroups/freezer-subsystem.txt:
> 
> It's important to note that freezing can be incomplete. In that case we return
> EBUSY. This means that some tasks in the cgroup are busy doing something that
> prevents us from completely freezing the cgroup at this time. After EBUSY,
> the cgroup will remain partially frozen -- reflected by freezer.state 
> reporting
> "FREEZING" when read. The state will remain "FREEZING" until one of these
> things happens:
> 
>       1) Userspace cancels the freezing operation by writing "THAWED" to
>               the freezer.state file
>       2) Userspace retries the freezing operation by writing "FROZEN" to
>               the freezer.state file (writing "FREEZING" is not legal
>               and returns EINVAL)
>       3) The tasks that blocked the cgroup from entering the "FROZEN"
>               state disappear from the cgroup's set of tasks.
> 
> 
> Diffs
> -----
> 
>   src/linux/cgroups.cpp 4efd06e 
> 
> Diff: https://reviews.apache.org/r/7203/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Benjamin Hindman
> 
>

Reply via email to