lkml.org 
[lkml]   [2008]   [Oct]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3/6] memcg: charge-commit-cancel protocl
    > @@ -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]).


    Thanks,
    Daisuke Nishimura.



    \
     
     \ /
      Last update: 2008-10-01 10:37    [W:0.046 / U:33.460 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site