On 02/12, Roman Gushchin wrote:
>
>   - handle properly the case, when a task is both stopped and frozen

I didn't read this version yet, just looked at

        +static void cgroup_update_frozen(struct cgroup *cgrp)
        +{
        +       bool frozen;
        +
        +       lockdep_assert_held(&css_set_lock);
        +
        +       /*
        +        * If the cgroup has to be frozen (CGRP_FREEZE bit set),
        +        * and all tasks are frozen and/or stopped, let's consider
        +        * the cgroup frozen. Otherwise it's not frozen.
        +        */
        +       frozen = test_bit(CGRP_FREEZE, &cgrp->flags) &&
        +               cgrp->freezer.nr_frozen_tasks +
        +               cgrp->freezer.nr_stopped_tasks >=
        +               cgrp->freezer.nr_tasks_to_freeze;

if this is the only change which should handle this case correctly, I doubt it 
can
help. See another email I sent you a minute ago...

Oleg.

Reply via email to