lkml.org 
[lkml]   [2012]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v5 09/14] memcg: kmem accounting lifecycle management
    On Tue, 16 Oct 2012, Glauber Costa wrote:

    > diff --git a/mm/memcontrol.c b/mm/memcontrol.c
    > index 1182188..e24b388 100644
    > --- a/mm/memcontrol.c
    > +++ b/mm/memcontrol.c
    > @@ -344,6 +344,7 @@ struct mem_cgroup {
    > /* internal only representation about the status of kmem accounting. */
    > enum {
    > KMEM_ACCOUNTED_ACTIVE = 0, /* accounted by this cgroup itself */
    > + KMEM_ACCOUNTED_DEAD, /* dead memcg, pending kmem charges */

    "dead memcg with pending kmem charges" seems better.

    > };
    >
    > #define KMEM_ACCOUNTED_MASK (1 << KMEM_ACCOUNTED_ACTIVE)
    > @@ -353,6 +354,22 @@ static void memcg_kmem_set_active(struct mem_cgroup *memcg)
    > {
    > set_bit(KMEM_ACCOUNTED_ACTIVE, &memcg->kmem_accounted);
    > }
    > +
    > +static bool memcg_kmem_is_active(struct mem_cgroup *memcg)
    > +{
    > + return test_bit(KMEM_ACCOUNTED_ACTIVE, &memcg->kmem_accounted);
    > +}

    I think all of these should be inline.

    > +
    > +static void memcg_kmem_mark_dead(struct mem_cgroup *memcg)
    > +{
    > + if (test_bit(KMEM_ACCOUNTED_ACTIVE, &memcg->kmem_accounted))
    > + set_bit(KMEM_ACCOUNTED_DEAD, &memcg->kmem_accounted);
    > +}

    The set_bit() doesn't happen atomically with the test_bit(), what
    synchronization is required for this?


    \
     
     \ /
      Last update: 2012-10-18 02:01    [W:4.756 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site