Messages in this thread | | | From | Yafang Shao <> | Date | Fri, 24 May 2019 22:15:18 +0800 | Subject | Re: [PATCH] mm/vmscan.c: drop all inode/dentry cache from LRU |
| |
On Fri, May 24, 2019 at 4:06 PM Sahitya Tummala <stummala@codeaurora.org> wrote: > > This is important for the scenario where FBE (file based encryption) > is enabled. With FBE, the encryption context needed to en/decrypt a file > will be stored in inode and any inode that is left in the cache after > drop_caches is done will be a problem. For ex, in Android, drop_caches > will be used when switching work profiles. > > Signed-off-by: Sahitya Tummala <stummala@codeaurora.org> > --- > mm/vmscan.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index d96c547..b48926f 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -730,7 +730,7 @@ void drop_slab_node(int nid) > do { > freed += shrink_slab(GFP_KERNEL, nid, memcg, 0); > } while ((memcg = mem_cgroup_iter(NULL, memcg, NULL)) != NULL); > - } while (freed > 10); > + } while (freed != 0); > }
Perhaps that is not enough, because the shrink may stop when scan count is less than SHRINK_BATCH. Pls. see do_shrink_slab.
What about set shrinker->batch to 1 in this case ?
Thanks Yafang
| |