|
@@ -323,15 +323,6 @@ EXPORT_SYMBOL(memcg_kmem_enabled_key);
|
|
|
|
|
|
#endif /* !CONFIG_SLOB */
|
|
|
|
|
|
-static struct mem_cgroup_per_zone *
|
|
|
-mem_cgroup_zone_zoneinfo(struct mem_cgroup *memcg, struct zone *zone)
|
|
|
-{
|
|
|
- int nid = zone_to_nid(zone);
|
|
|
- int zid = zone_idx(zone);
|
|
|
-
|
|
|
- return &memcg->nodeinfo[nid]->zoneinfo[zid];
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* mem_cgroup_css_from_page - css of the memcg associated with a page
|
|
|
* @page: page of interest
|
|
@@ -943,39 +934,6 @@ static void invalidate_reclaim_iterators(struct mem_cgroup *dead_memcg)
|
|
|
iter != NULL; \
|
|
|
iter = mem_cgroup_iter(NULL, iter, NULL))
|
|
|
|
|
|
-/**
|
|
|
- * mem_cgroup_zone_lruvec - get the lru list vector for a zone and memcg
|
|
|
- * @zone: zone of the wanted lruvec
|
|
|
- * @memcg: memcg of the wanted lruvec
|
|
|
- *
|
|
|
- * Returns the lru list vector holding pages for the given @zone and
|
|
|
- * @mem. This can be the global zone lruvec, if the memory controller
|
|
|
- * is disabled.
|
|
|
- */
|
|
|
-struct lruvec *mem_cgroup_zone_lruvec(struct zone *zone,
|
|
|
- struct mem_cgroup *memcg)
|
|
|
-{
|
|
|
- struct mem_cgroup_per_zone *mz;
|
|
|
- struct lruvec *lruvec;
|
|
|
-
|
|
|
- if (mem_cgroup_disabled()) {
|
|
|
- lruvec = &zone->lruvec;
|
|
|
- goto out;
|
|
|
- }
|
|
|
-
|
|
|
- mz = mem_cgroup_zone_zoneinfo(memcg, zone);
|
|
|
- lruvec = &mz->lruvec;
|
|
|
-out:
|
|
|
- /*
|
|
|
- * Since a node can be onlined after the mem_cgroup was created,
|
|
|
- * we have to be prepared to initialize lruvec->zone here;
|
|
|
- * and if offlined then reonlined, we need to reinitialize it.
|
|
|
- */
|
|
|
- if (unlikely(lruvec->zone != zone))
|
|
|
- lruvec->zone = zone;
|
|
|
- return lruvec;
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* mem_cgroup_page_lruvec - return lruvec for isolating/putting an LRU page
|
|
|
* @page: the page
|