[PATCH RFC v2 3/4] memcg: rework usage of stats by soft limit

Kirill A. Shutemov kirill at shutemov.name
Sat Dec 12 11:46:08 PST 2009


On Sat, Dec 12, 2009 at 4:34 PM, Daisuke Nishimura
<d-nishimura at mtf.biglobe.ne.jp> wrote:
> On Sat, 12 Dec 2009 15:06:52 +0200
> "Kirill A. Shutemov" <kirill at shutemov.name> wrote:
>
>> On Sat, Dec 12, 2009 at 5:50 AM, Daisuke Nishimura
>> <d-nishimura at mtf.biglobe.ne.jp> wrote:
>> > And IIUC, it's the same for your threshold feature, right ?
>> > I think it would be better:
>> >
>> > - discard this change.
>> > - in 4/4, rename mem_cgroup_soft_limit_check to mem_cgroup_event_check,
>> >  and instead of adding a new STAT counter, do like:
>> >
>> >        if (mem_cgroup_event_check(mem)) {
>> >                mem_cgroup_update_tree(mem, page);
>> >                mem_cgroup_threshold(mem);
>> >        }
>>
>> I think that mem_cgroup_update_tree() and mem_cgroup_threshold() should be
>> run with different frequency. How to share MEM_CGROUP_STAT_EVENTS
>> between soft limits and thresholds in this case?
>>
> hmm, both softlimit and your threshold count events at the same place(charge and uncharge).
> So, I think those events can be shared.
> Is there any reason they should run in different frequency ?

SOFTLIMIT_EVENTS_THRESH is 1000. If use the same value for thresholds,
a threshold can
be exceed on 1000*nr_cpu_id pages. It's too many. I think, that 100 is
a reasonable value.

mem_cgroup_soft_limit_check() resets MEM_CGROUP_STAT_EVENTS when it reaches
SOFTLIMIT_EVENTS_THRESH. If I will do the same thing for
THRESHOLDS_EVENTS_THRESH
(which is 100) , mem_cgroup_event_check() will never be 'true'. Any
idea how to share
MEM_CGROUP_STAT_EVENTS in this case?


More information about the Containers mailing list