Re: Re: [PATCH 3/6] memcg: charge-commit-cancel protocl

From: kamezawa . hiroyu
Date: Wed Oct 01 2008 - 06:05:31 EST


----- Original Message -----
>> @@ -531,18 +529,33 @@ static int mem_cgroup_charge_common(stru
>>
>> if (!nr_retries--) {
>> mem_cgroup_out_of_memory(mem, gfp_mask);
>> - goto out;
>> + goto nomem;
>> }
>> }
>> + return 0;
>> +nomem:
>> + css_put(&mem->css);
>> + return -ENOMEM;
>> +}
>>
>> +/*
>> + * commit a charge got by mem_cgroup_try_charge() and makes page_cgroup to
be
>> + * USED state. If already USED, uncharge and return.
>> + */
>> +
>> +static void __mem_cgroup_commit_charge(struct mem_cgroup *mem,
>> + struct page_cgroup *pc,
>> + enum charge_type ctype)
>> +{
>> + struct mem_cgroup_per_zone *mz;
>> + unsigned long flags;
>>
>> lock_page_cgroup(pc);
>> if (unlikely(PageCgroupUsed(pc))) {
>> unlock_page_cgroup(pc);
>> res_counter_uncharge(&mem->res, PAGE_SIZE);
>> css_put(&mem->css);
>> -
>> - goto done;
>> + return;
>> }
>> pc->mem_cgroup = mem;
>> /*
>
>Hmm, this patch cannot be applied because of this part.
>
>After [2/6], mem_cgroup_charge_common looks like:
>
>---
> if (!nr_retries--) {
> mem_cgroup_out_of_memory(mem, gfp_mask);
> goto out;
> }
> }
>
>
> lock_page_cgroup(pc);
>
> if (unlikely(PageCgroupUsed(pc))) {
> unlock_page_cgroup(pc);
> res_counter_uncharge(&mem->res, PAGE_SIZE);
> css_put(&mem->css);
>
> goto done;
> }
> pc->mem_cgroup = mem;
> /*
>---
>
>There is an empty line after lock_page_cgroup.
>
>After removing this line, I can appliy this patch(and [4-6/6]).
>
Ah, sorry. maybe refresh miss..

I'll check it again tomorrow.

Thanks,
-Kame


>
>Thanks,
>Daisuke Nishimura.
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/