Skip to content

Commit

Permalink
memcg: clean up memcg->nodeinfo
Browse files Browse the repository at this point in the history
Remove struct mem_cgroup_lru_info and fold its single member, the
variably sized nodeinfo[0], directly into struct mem_cgroup.  This
should make it more obvious why it has to be the last member there.

Also move the comment that's above that special last member below it, so
it is more visible to somebody that considers appending to the struct
mem_cgroup.

Signed-off-by: Johannes Weiner <[email protected]>
Cc: David Rientjes <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Cc: Glauber Costa <[email protected]>
Cc: KAMEZAWA Hiroyuki <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
hnaz authored and torvalds committed Jul 9, 2013
1 parent 9a2458a commit 54f72fe
Showing 1 changed file with 5 additions and 15 deletions.
20 changes: 5 additions & 15 deletions mm/memcontrol.c
Original file line number Diff line number Diff line change
Expand Up @@ -187,10 +187,6 @@ struct mem_cgroup_per_node {
struct mem_cgroup_per_zone zoneinfo[MAX_NR_ZONES];
};

struct mem_cgroup_lru_info {
struct mem_cgroup_per_node *nodeinfo[0];
};

/*
* Cgroups above their limits are maintained in a RB-Tree, independent of
* their hierarchy representation
Expand Down Expand Up @@ -366,14 +362,8 @@ struct mem_cgroup {
atomic_t numainfo_updating;
#endif

/*
* Per cgroup active and inactive list, similar to the
* per zone LRU lists.
*
* WARNING: This has to be the last element of the struct. Don't
* add new fields after this point.
*/
struct mem_cgroup_lru_info info;
struct mem_cgroup_per_node *nodeinfo[0];
/* WARNING: nodeinfo must be the last member here */
};

static size_t memcg_size(void)
Expand Down Expand Up @@ -683,7 +673,7 @@ static struct mem_cgroup_per_zone *
mem_cgroup_zoneinfo(struct mem_cgroup *memcg, int nid, int zid)
{
VM_BUG_ON((unsigned)nid >= nr_node_ids);
return &memcg->info.nodeinfo[nid]->zoneinfo[zid];
return &memcg->nodeinfo[nid]->zoneinfo[zid];
}

struct cgroup_subsys_state *mem_cgroup_css(struct mem_cgroup *memcg)
Expand Down Expand Up @@ -6087,13 +6077,13 @@ static int alloc_mem_cgroup_per_zone_info(struct mem_cgroup *memcg, int node)
mz->on_tree = false;
mz->memcg = memcg;
}
memcg->info.nodeinfo[node] = pn;
memcg->nodeinfo[node] = pn;
return 0;
}

static void free_mem_cgroup_per_zone_info(struct mem_cgroup *memcg, int node)
{
kfree(memcg->info.nodeinfo[node]);
kfree(memcg->nodeinfo[node]);
}

static struct mem_cgroup *mem_cgroup_alloc(void)
Expand Down

0 comments on commit 54f72fe

Please sign in to comment.