• T
    cgroup, memcg: move cgroup_event implementation to memcg · 79bd9814
    Tejun Heo 提交于
    cgroup_event is way over-designed and tries to build a generic
    flexible event mechanism into cgroup - fully customizable event
    specification for each user of the interface.  This is utterly
    unnecessary and overboard especially in the light of the planned
    unified hierarchy as there's gonna be single agent.  Simply generating
    events at fixed points, or if that's too restrictive, configureable
    cadence or single set of configureable points should be enough.
    
    Thankfully, memcg is the only user and gets to keep it.  Replacing it
    with something simpler on sane_behavior is strongly recommended.
    
    This patch moves cgroup_event and "cgroup.event_control"
    implementation to mm/memcontrol.c.  Clearing of events on cgroup
    destruction is moved from cgroup_destroy_locked() to
    mem_cgroup_css_offline(), which shouldn't make any noticeable
    difference.
    
    cgroup_css() and __file_cft() are exported to enable the move;
    however, this will soon be reverted once the event code is updated to
    be memcg specific.
    
    Note that "cgroup.event_control" will now exist only on the hierarchy
    with memcg attached to it.  While this change is visible to userland,
    it is unlikely to be noticeable as the file has never been meaningful
    outside memcg.
    
    Aside from the above change, this is pure code relocation.
    
    v2: Per Li Zefan's comments, init/Kconfig updated accordingly and
        poll.h inclusion moved from cgroup.c to memcontrol.c.
    Signed-off-by: NTejun Heo <tj@kernel.org>
    Acked-by: NLi Zefan <lizefan@huawei.com>
    Acked-by: NKirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Acked-by: NMichal Hocko <mhocko@suse.cz>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Balbir Singh <bsingharora@gmail.com>
    79bd9814
memcontrol.c 192.0 KB