mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 13:44:15 +08:00
mm/memcg: Use the node id in mem_cgroup_update_tree()
By using the node id in mem_cgroup_update_tree(), we can delete soft_limit_tree_from_page() and mem_cgroup_page_nodeinfo(). Saves 42 bytes of kernel text on my config. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: David Howells <dhowells@redhat.com> Acked-by: Vlastimil Babka <vbabka@suse.cz>
This commit is contained in:
parent
6e0110c247
commit
658b69c9d8
@ -456,28 +456,12 @@ ino_t page_cgroup_ino(struct page *page)
|
||||
return ino;
|
||||
}
|
||||
|
||||
static struct mem_cgroup_per_node *
|
||||
mem_cgroup_page_nodeinfo(struct mem_cgroup *memcg, struct page *page)
|
||||
{
|
||||
int nid = page_to_nid(page);
|
||||
|
||||
return memcg->nodeinfo[nid];
|
||||
}
|
||||
|
||||
static struct mem_cgroup_tree_per_node *
|
||||
soft_limit_tree_node(int nid)
|
||||
{
|
||||
return soft_limit_tree.rb_tree_per_node[nid];
|
||||
}
|
||||
|
||||
static struct mem_cgroup_tree_per_node *
|
||||
soft_limit_tree_from_page(struct page *page)
|
||||
{
|
||||
int nid = page_to_nid(page);
|
||||
|
||||
return soft_limit_tree.rb_tree_per_node[nid];
|
||||
}
|
||||
|
||||
static void __mem_cgroup_insert_exceeded(struct mem_cgroup_per_node *mz,
|
||||
struct mem_cgroup_tree_per_node *mctz,
|
||||
unsigned long new_usage_in_excess)
|
||||
@ -548,13 +532,13 @@ static unsigned long soft_limit_excess(struct mem_cgroup *memcg)
|
||||
return excess;
|
||||
}
|
||||
|
||||
static void mem_cgroup_update_tree(struct mem_cgroup *memcg, struct page *page)
|
||||
static void mem_cgroup_update_tree(struct mem_cgroup *memcg, int nid)
|
||||
{
|
||||
unsigned long excess;
|
||||
struct mem_cgroup_per_node *mz;
|
||||
struct mem_cgroup_tree_per_node *mctz;
|
||||
|
||||
mctz = soft_limit_tree_from_page(page);
|
||||
mctz = soft_limit_tree_node(nid);
|
||||
if (!mctz)
|
||||
return;
|
||||
/*
|
||||
@ -562,7 +546,7 @@ static void mem_cgroup_update_tree(struct mem_cgroup *memcg, struct page *page)
|
||||
* because their event counter is not touched.
|
||||
*/
|
||||
for (; memcg; memcg = parent_mem_cgroup(memcg)) {
|
||||
mz = mem_cgroup_page_nodeinfo(memcg, page);
|
||||
mz = memcg->nodeinfo[nid];
|
||||
excess = soft_limit_excess(memcg);
|
||||
/*
|
||||
* We have to update the tree if mz is on RB-tree or
|
||||
@ -852,7 +836,7 @@ static void memcg_check_events(struct mem_cgroup *memcg, struct page *page)
|
||||
MEM_CGROUP_TARGET_SOFTLIMIT);
|
||||
mem_cgroup_threshold(memcg);
|
||||
if (unlikely(do_softlimit))
|
||||
mem_cgroup_update_tree(memcg, page);
|
||||
mem_cgroup_update_tree(memcg, page_to_nid(page));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user