On Mon, Aug 03, 2015 at 03:04:22PM +0300, Vladimir Davydov wrote: > @@ -179,8 +180,9 @@ static void unpack_shadow(void *shadow, > eviction = entry; > > *zone = NODE_DATA(nid)->node_zones + zid; > + *lruvec = mem_cgroup_page_lruvec(page, *zone); > > - refault = atomic_long_read(&(*zone)->inactive_age); > + refault = atomic_long_read(&(*lruvec)->inactive_age); > mask = ~0UL >> (NODES_SHIFT + ZONES_SHIFT + > RADIX_TREE_EXCEPTIONAL_SHIFT); > /* You can not compare an eviction shadow entry from one lruvec with the inactive age of another lruvec. The inactive ages are not related and might differ significantly: memcgs are created ad hoc, memory hotplug, page allocator fairness drift. In those cases the result will be pure noise. As much as I would like to see a simpler way, I am pessimistic that there is a way around storing memcg ids in the shadow entries. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>