ANDROID: add two func in mm/memcontrol.c
- page_to_lruvec: get lruvec from page and pgdat. - 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:
parent
e56f8712cf
commit
2b377175a3
@ -345,6 +345,9 @@ struct mem_cgroup {
|
||||
|
||||
extern struct mem_cgroup *root_mem_cgroup;
|
||||
|
||||
struct lruvec *page_to_lruvec(struct page *page, pg_data_t *pgdat);
|
||||
void do_traversal_all_lruvec(void);
|
||||
|
||||
static __always_inline bool memcg_stat_item_in_bytes(int idx)
|
||||
{
|
||||
if (idx == MEMCG_PERCPU_B)
|
||||
@ -969,6 +972,15 @@ void split_page_memcg(struct page *head, unsigned int nr);
|
||||
|
||||
struct mem_cgroup;
|
||||
|
||||
static inline struct lruvec *page_to_lruvec(struct page *page, pg_data_t *pgdat)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void do_traversal_all_lruvec(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline bool mem_cgroup_is_root(struct mem_cgroup *memcg)
|
||||
{
|
||||
return true;
|
||||
|
@ -1372,6 +1372,38 @@ struct lruvec *mem_cgroup_page_lruvec(struct page *page, struct pglist_data *pgd
|
||||
return lruvec;
|
||||
}
|
||||
|
||||
struct lruvec *page_to_lruvec(struct page *page, pg_data_t *pgdat)
|
||||
{
|
||||
struct lruvec *lruvec;
|
||||
|
||||
lruvec = mem_cgroup_page_lruvec(page, pgdat);
|
||||
|
||||
return lruvec;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(page_to_lruvec);
|
||||
|
||||
void do_traversal_all_lruvec(void)
|
||||
{
|
||||
pg_data_t *pgdat;
|
||||
|
||||
for_each_online_pgdat(pgdat) {
|
||||
struct mem_cgroup *memcg = NULL;
|
||||
|
||||
spin_lock_irq(&pgdat->lru_lock);
|
||||
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);
|
||||
|
||||
spin_unlock_irq(&pgdat->lru_lock);
|
||||
}
|
||||
}
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user