Hi Glauber,
On Mon, Feb 11, 2013 at 02:17:06PM +0400, Glauber Costa wrote: [...]
+static struct vmpressure *vmpressure_parent(struct vmpressure *vmpr) +{
- struct cgroup *cg = vmpr_to_css(vmpr)->cgroup->parent;
- if (!cg)
return NULL;
- return cg_to_vmpr(cg);
+}
Unfortunately, "parent" in memcg have different meanings for information propagation purposes depending on the value of the flag "use_hierarchy". That is set for deprecation, but still...
I suggest you use the helper mem_cgroup_parent, that will already give you the right parent (either immediate parent or root) with all that taken into account.
Got it, will change.
[...]
+void __init enable_pressure_cgroup(void) +{
- WARN_ON(cgroup_add_cftypes(&mem_cgroup_subsys,
vmpressure_cgroup_files));
+}
There is no functionality discovery going on here, and this is conditional on nothing. Isn't it better then to just add the register + read functions to memcontrol.c and add the files in the memcontrol cftype ?
I was trying to make the stuff similar to the existing CONFIG_MEMCG_SWAP code, which does this kind of adding files to the cgroup. But I can surely place files into memcontrol cftype as you suggest.
Thanks a lot for the comments!
Anton