diff options
Diffstat (limited to 'mm/shrinker.c')
-rw-r--r-- | mm/shrinker.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/mm/shrinker.c b/mm/shrinker.c index c56c1f824f79..cbadd4d4437c 100644 --- a/mm/shrinker.c +++ b/mm/shrinker.c @@ -825,9 +825,15 @@ EXPORT_SYMBOL_GPL(shrinker_free); void shrinker_to_text(struct seq_buf *out, struct shrinker *shrinker) { - struct shrink_control sc = { .gfp_mask = GFP_KERNEL, }; + struct shrink_control sc = { + .gfp_mask = GFP_KERNEL, +#ifdef CONFIG_MEMCG + .memcg = root_mem_cgroup, +#endif + }; unsigned long nr_freed = atomic_long_read(&shrinker->objects_freed); + seq_buf_puts(out, shrinker->name); seq_buf_putc(out, '\n'); @@ -867,7 +873,12 @@ void shrinkers_to_text(struct seq_buf *out) } list_for_each_entry(shrinker, &shrinker_list, list) { - struct shrink_control sc = { .gfp_mask = GFP_KERNEL, }; + struct shrink_control sc = { + .gfp_mask = GFP_KERNEL, +#ifdef CONFIG_MEMCG + .memcg = root_mem_cgroup, +#endif + }; unsigned long mem = shrinker->count_objects(shrinker, &sc); if (!mem || mem == SHRINK_STOP || mem == SHRINK_EMPTY) |