Re: [PATCH] memcg: drop type MEM_CGROUP_CHARGE_TYPE_DROP

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

 



On Thu, Dec 8, 2011 at 9:42 AM, KAMEZAWA Hiroyuki
<kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
> On Wed, 7 Dec 2011 20:29:24 +0800
> Bob Liu <lliubbo@xxxxxxxxx> wrote:
>
>> On Wed, Dec 7, 2011 at 7:03 PM, KAMEZAWA Hiroyuki
>> <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
>> > On Wed, 7 Dec 2011 18:30:46 +0800
>> > Bob Liu <lliubbo@xxxxxxxxx> wrote:
>> >
>> >> uncharge will happen only when !page_mapped(page) no matter MEM_CGROUP_CHARGE_TYPE_DROP
>> >> or MEM_CGROUP_CHARGE_TYPE_SWAPOUT when called from mem_cgroup_uncharge_swapcache().
>> >> i think it's no difference, so drop it.
>> >>
>> >> Signed-off-by: Bob Liu <lliubbo@xxxxxxxxx>
>> >
>> > I think you didn't test at all.
>> >
>> >> ---
>> >>  mm/memcontrol.c |    5 -----
>> >>  1 files changed, 0 insertions(+), 5 deletions(-)
>> >>
>> >> diff --git a/mm/memcontrol.c b/mm/memcontrol.c
>> >> index 6aff93c..02a2988 100644
>> >> --- a/mm/memcontrol.c
>> >> +++ b/mm/memcontrol.c
>> >> @@ -339,7 +339,6 @@ enum charge_type {
>> >>       MEM_CGROUP_CHARGE_TYPE_SHMEM,   /* used by page migration of shmem */
>> >>       MEM_CGROUP_CHARGE_TYPE_FORCE,   /* used by force_empty */
>> >>       MEM_CGROUP_CHARGE_TYPE_SWAPOUT, /* for accounting swapcache */
>> >> -     MEM_CGROUP_CHARGE_TYPE_DROP,    /* a page was unused swap cache */
>> >>       NR_CHARGE_TYPE,
>> >>  };
>> >>
>> >> @@ -3000,7 +2999,6 @@ __mem_cgroup_uncharge_common(struct page *page, enum charge_type ctype)
>> >>
>> >>       switch (ctype) {
>> >>       case MEM_CGROUP_CHARGE_TYPE_MAPPED:
>> >> -     case MEM_CGROUP_CHARGE_TYPE_DROP:
>> >>               /* See mem_cgroup_prepare_migration() */
>> >>               if (page_mapped(page) || PageCgroupMigration(pc))
>> >>                       goto unlock_out;
>> >> @@ -3121,9 +3119,6 @@ mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout)
>> >>       struct mem_cgroup *memcg;
>> >>       int ctype = MEM_CGROUP_CHARGE_TYPE_SWAPOUT;
>> >>
>> >> -     if (!swapout) /* this was a swap cache but the swap is unused ! */
>> >> -             ctype = MEM_CGROUP_CHARGE_TYPE_DROP;
>> >> -
>> >
>> > Then, here , what ctype must be if !swapout ?
>> >
>>
>> I think MEM_CGROUP_CHARGE_TYPE_SWAPOUT is okay, i didn't get the point
>> that the benefit of using MEM_CGROUP_CHARGE_TYPE_DROP.
>>
>> If use  MEM_CGROUP_CHARGE_TYPE_SWAPOUT, page_mapped(page) also checked in
>> __mem_cgroup_uncharge_common().
>>
>> Maybe i missed something. Thanks.
>>
> why you don't see 10 more lines.
>
> If SWAPOUT,
>  - record swap out information to swap_cgroup
>  - don't decrease memcg->memsw counter
> If DROP
>  - same as usual MAPPED anon pages.
>
> DROP may be equal to MAPPED. But this swap realted codes are most fragile
> part of memcg and we used another name than MAPPED for taking care.
>

Get it.
Sorry for my noise, i didn't deep into following function.

-- 
Regards,
--Bob

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href


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