ANDROID: add func:do_traversal_all_lruvec in mm/memcontrol.c
do_traversal_all_lruvec: traversal all lruvec and do hookss. Bug: 236578020 Signed-off-by: Peifeng Li <lipeifeng@oppo.com> Change-Id: I3d4f5159faaca1ee71ffa65f2fc1341f51da637c
This commit is contained in:
committed by
Suren Baghdasaryan
parent
efbe140e82
commit
09ebd2be6e
@@ -382,6 +382,8 @@ enum page_memcg_data_flags {
|
||||
|
||||
static inline bool PageMemcgKmem(struct page *page);
|
||||
|
||||
void do_traversal_all_lruvec(void);
|
||||
|
||||
/*
|
||||
* After the initialization objcg->memcg is always pointing at
|
||||
* a valid memcg, but can be atomically swapped to the parent memcg.
|
||||
@@ -1167,6 +1169,10 @@ static inline bool PageMemcgKmem(struct page *page)
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline void do_traversal_all_lruvec(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg)
|
||||
{
|
||||
return true;
|
||||
|
||||
@@ -1279,6 +1279,25 @@ struct lruvec *lock_page_lruvec_irqsave(struct page *page, unsigned long *flags)
|
||||
return lruvec;
|
||||
}
|
||||
|
||||
void do_traversal_all_lruvec(void)
|
||||
{
|
||||
pg_data_t *pgdat;
|
||||
|
||||
for_each_online_pgdat(pgdat) {
|
||||
struct mem_cgroup *memcg = NULL;
|
||||
|
||||
memcg = mem_cgroup_iter(NULL, NULL, NULL);
|
||||
do {
|
||||
struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
|
||||
|
||||
trace_android_vh_do_traversal_lruvec(lruvec);
|
||||
|
||||
memcg = mem_cgroup_iter(NULL, memcg, NULL);
|
||||
} while (memcg);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(do_traversal_all_lruvec);
|
||||
|
||||
/**
|
||||
* mem_cgroup_update_lru_size - account for adding or removing an lru page
|
||||
* @lruvec: mem_cgroup per zone lru vector
|
||||
|
||||
Reference in New Issue
Block a user