|
@@ -138,7 +138,6 @@ struct mem_cgroup_per_zone {
|
|
|
|
|
|
struct mem_cgroup_reclaim_iter reclaim_iter[DEF_PRIORITY + 1];
|
|
|
|
|
|
- struct zone_reclaim_stat reclaim_stat;
|
|
|
struct rb_node tree_node; /* RB tree node */
|
|
|
unsigned long long usage_in_excess;/* Set to the value by which */
|
|
|
/* the soft limit is exceeded*/
|
|
@@ -1243,16 +1242,6 @@ int mem_cgroup_inactive_file_is_low(struct mem_cgroup *memcg, struct zone *zone)
|
|
|
return (active > inactive);
|
|
|
}
|
|
|
|
|
|
-struct zone_reclaim_stat *mem_cgroup_get_reclaim_stat(struct mem_cgroup *memcg,
|
|
|
- struct zone *zone)
|
|
|
-{
|
|
|
- int nid = zone_to_nid(zone);
|
|
|
- int zid = zone_idx(zone);
|
|
|
- struct mem_cgroup_per_zone *mz = mem_cgroup_zoneinfo(memcg, nid, zid);
|
|
|
-
|
|
|
- return &mz->reclaim_stat;
|
|
|
-}
|
|
|
-
|
|
|
struct zone_reclaim_stat *
|
|
|
mem_cgroup_get_reclaim_stat_from_page(struct page *page)
|
|
|
{
|
|
@@ -1268,7 +1257,7 @@ mem_cgroup_get_reclaim_stat_from_page(struct page *page)
|
|
|
/* Ensure pc->mem_cgroup is visible after reading PCG_USED. */
|
|
|
smp_rmb();
|
|
|
mz = page_cgroup_zoneinfo(pc->mem_cgroup, page);
|
|
|
- return &mz->reclaim_stat;
|
|
|
+ return &mz->lruvec.reclaim_stat;
|
|
|
}
|
|
|
|
|
|
#define mem_cgroup_from_res_counter(counter, member) \
|
|
@@ -4216,21 +4205,19 @@ static int mem_control_stat_show(struct cgroup *cont, struct cftype *cft,
|
|
|
{
|
|
|
int nid, zid;
|
|
|
struct mem_cgroup_per_zone *mz;
|
|
|
+ struct zone_reclaim_stat *rstat;
|
|
|
unsigned long recent_rotated[2] = {0, 0};
|
|
|
unsigned long recent_scanned[2] = {0, 0};
|
|
|
|
|
|
for_each_online_node(nid)
|
|
|
for (zid = 0; zid < MAX_NR_ZONES; zid++) {
|
|
|
mz = mem_cgroup_zoneinfo(memcg, nid, zid);
|
|
|
+ rstat = &mz->lruvec.reclaim_stat;
|
|
|
|
|
|
- recent_rotated[0] +=
|
|
|
- mz->reclaim_stat.recent_rotated[0];
|
|
|
- recent_rotated[1] +=
|
|
|
- mz->reclaim_stat.recent_rotated[1];
|
|
|
- recent_scanned[0] +=
|
|
|
- mz->reclaim_stat.recent_scanned[0];
|
|
|
- recent_scanned[1] +=
|
|
|
- mz->reclaim_stat.recent_scanned[1];
|
|
|
+ recent_rotated[0] += rstat->recent_rotated[0];
|
|
|
+ recent_rotated[1] += rstat->recent_rotated[1];
|
|
|
+ recent_scanned[0] += rstat->recent_scanned[0];
|
|
|
+ recent_scanned[1] += rstat->recent_scanned[1];
|
|
|
}
|
|
|
cb->fill(cb, "recent_rotated_anon", recent_rotated[0]);
|
|
|
cb->fill(cb, "recent_rotated_file", recent_rotated[1]);
|