Loading mm/vmscan.c +12 −5 Original line number Diff line number Diff line Loading @@ -2768,16 +2768,23 @@ static bool shrink_node(pg_data_t *pgdat, struct scan_control *sc) } } while ((memcg = mem_cgroup_iter(root, memcg, &reclaim))); /* * Record the subtree's reclaim efficiency. The reclaimed * pages from slab is excluded here because the corresponding * scanned pages is not accounted. Moreover, freeing a page * by slab shrinking depends on each slab's object population, * making the cost model (i.e. scan:free) different from that * of LRU. */ vmpressure(sc->gfp_mask, sc->target_mem_cgroup, true, sc->nr_scanned - nr_scanned, sc->nr_reclaimed - nr_reclaimed); if (reclaim_state) { sc->nr_reclaimed += reclaim_state->reclaimed_slab; reclaim_state->reclaimed_slab = 0; } /* Record the subtree's reclaim efficiency */ vmpressure(sc->gfp_mask, sc->target_mem_cgroup, true, sc->nr_scanned - nr_scanned, sc->nr_reclaimed - nr_reclaimed); if (sc->nr_reclaimed - nr_reclaimed) reclaimable = true; Loading Loading
mm/vmscan.c +12 −5 Original line number Diff line number Diff line Loading @@ -2768,16 +2768,23 @@ static bool shrink_node(pg_data_t *pgdat, struct scan_control *sc) } } while ((memcg = mem_cgroup_iter(root, memcg, &reclaim))); /* * Record the subtree's reclaim efficiency. The reclaimed * pages from slab is excluded here because the corresponding * scanned pages is not accounted. Moreover, freeing a page * by slab shrinking depends on each slab's object population, * making the cost model (i.e. scan:free) different from that * of LRU. */ vmpressure(sc->gfp_mask, sc->target_mem_cgroup, true, sc->nr_scanned - nr_scanned, sc->nr_reclaimed - nr_reclaimed); if (reclaim_state) { sc->nr_reclaimed += reclaim_state->reclaimed_slab; reclaim_state->reclaimed_slab = 0; } /* Record the subtree's reclaim efficiency */ vmpressure(sc->gfp_mask, sc->target_mem_cgroup, true, sc->nr_scanned - nr_scanned, sc->nr_reclaimed - nr_reclaimed); if (sc->nr_reclaimed - nr_reclaimed) reclaimable = true; Loading