Re: [PATCH 1/8] cgroup: kill cgroup_subsys->__DEPRECATED_clear_css_refs
From: Michal Hocko <hidden>
Date: 2012-10-31 16:49:00
Also in:
lkml
On Wed 31-10-12 09:41:23, Tejun Heo wrote:
Hey, Michal. On Wed, Oct 31, 2012 at 03:37:51PM +0100, Michal Hocko wrote:quoted
quoted
+ for_each_subsys(cgrp->root, ss) + if (ss->pre_destroy) + WARN_ON_ONCE(ss->pre_destroy(cgrp));Hmm, I am not sure I like this WARN_ON_ONCE. First it can happen for more than one controller and second we can just clear CGRP_WAIT_ON_RMDIR and return with EBUSY. The only possible failure at the moment is when a new task or a child group appear. I know it is not a big deal because it will disappear later in the series but it would be more readable IMO.The WARN_ON_ONCE() is just moved from the original cgroup_call_pre_destroy(). We can add an error out there but that makes future changes difficult. It's a chicken and egg problem. You gotta break the loop somewhere.
I do not think this is that hard. You can simply change the return path on pre_destroy error by BUG_ON in "cgroup: deactivate CSS's and mark cgroup dead before invoking ->pre_destroy()". There is no chicke&egg problem here because once the group is marked dead and css frozen then the existing callbacks cannot possibly fail. Or am I missing your point? -- Michal Hocko SUSE Labs