On Thu, Jan 3, 2019 at 8:57 AM Yang Shi <yang.shi@xxxxxxxxxxxxxxxxx> wrote: > > > > On 1/2/19 1:45 PM, Shakeel Butt wrote: > > On Wed, Jan 2, 2019 at 12:06 PM Yang Shi <yang.shi@xxxxxxxxxxxxxxxxx> wrote: > >> The typical usecase of force empty is to try to reclaim as much as > >> possible memory before offlining a memcg. Since there should be no > >> attached tasks to offlining memcg, the tasks anonymous pages would have > >> already been freed or uncharged. > > Anon pages can come from tmpfs files as well. > > Yes, but they are charged to swap space as regular anon pages. > The point was the lifetime of tmpfs anon pages are not tied to any task. Even though there aren't any task attached to a memcg, the tmpfs anon pages will remain charged. Other than that, the old anon pages of a task which have migrated away might still be charged to the old memcg (if move_charge_at_immigrate is not set). > > > >> Even though anonymous pages get > >> swapped out, but they still get charged to swap space. So, it sounds > >> pointless to do swap for force empty. > >> > > I understand that force_empty is typically used before rmdir'ing a > > memcg but it might be used differently by some users. We use this > > interface to test memory reclaim behavior (anon and file). > > Thanks for sharing your usecase. So, you uses this for test only? > Yes. Shakeel