RE: CGROUPS: HowTo: perform force_empty

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

> -----Original Message-----
> From: Michal Hocko [mailto:mstsxfx@xxxxxxxxx] On Behalf Of Michal Hocko
> Sent: Monday, February 02, 2015 5:45 PM
> To: PINTU KUMAR
> Cc: cgroups@xxxxxxxxxxxxxxx; bsingharora@xxxxxxxxx;
> kamezawa.hiroyu@xxxxxxxxxxxxxx; hannes@xxxxxxxxxxx; xemul@xxxxxxxxxx;
> cpgs@xxxxxxxxxxx
> Subject: Re: CGROUPS: HowTo: perform force_empty
> 
> On Mon 02-02-15 15:23:22, PINTU KUMAR wrote:
> > Hi,
> >
> > I have a question about memory cgroups under Linux kernel 3.10.
> > Under: /sys/fs/cgroup/memory/:
> >
> > I found, memory.force_empty.
> > But, when I try to do the following it says invalid argument:
> > # echo 0 > memory.force_empty
> > sh: echo: write error: Invalid argument
> >
> > It even fails with "echo 1"
> 
> It is not clear on which cgroup you are trying to invoke force_empty.
> The knob is disabled for the root memcg so I suppose this is why you see the
failure.
> 
Ok, please let me know how to use it for specific group, and where to check the
group info.
Also, why we should not run it for: root_mem_cgroup

> > I am using this command from the shell using the root login.
> > Can you tell me how to execute the force_empty command.
> 
> You can echo anything to the knob to trigger the reclaim.
> 
> > Or, how to release all the memory under all cgroups and release it to
> > the system?
> 
> Why would you use memcg API to release memory from the system as whole?
> What are you trying to achieve?
> 
Actually, the problem is that, the system is running with low memory, after few
application launch.
When, I see the cgroup: memory.stat, lots are memory is available in cgroups.
I also observed that system performs force_reclaim in background, to reclaim
some memory from the background cgroup.
But, at some scenario, I wanted to clean-up entire cgroup and start from fresh,
without killing the application, or without rebooting the system.
This is only for some experiment purpose.

> > Under, mm/memcontrol.c , if I use the function:
> > mem_cgroup_force_empty(struct mem_cgroup *memcg), will it help to release
> all memory?
> > But, then, how to initialize the memcg data structure?
> > Can you provide some example to use this API, from some other kernel
> > sub-system.
> 
> mem_cgroup_force_empty is an internal memory controller functionality which is
> not supposed to be used from other kernel subsystems. Why would you want to
> force reclaim on memcg level from the kernel in the first place?

I observe that force reclaim is already happening, during low memory condition.
Similarly, I want to use force_empty option.
But, I worry about, how to initialize the : struct mem_cgroup *memcg
What field, and what value I should set in this structure, to pass to
force_empty.
This is only for some experiment purpose.

Otherwise, please let me know, how to use the:
try_to_free_mem_cgroup_pages(struct mem_cgroup *memcg, ....), which is found in
mm/vmscan.c
In any case, I need to know how to initialize the mem_cgroup structure.

Once the experiment results are successful, I will share the details back.
Thank you for your reply.

> --
> Michal Hocko
> SUSE Labs

--
To unsubscribe from this list: send the line "unsubscribe cgroups" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [Monitors]

  Powered by Linux