lkml.org 
[lkml]   [2011]   [Feb]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 2/9] memcg: add page_cgroup flags for dirty page tracking
    Date
    Add additional flags to page_cgroup to track dirty pages
    within a mem_cgroup.

    Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Signed-off-by: Andrea Righi <arighi@develer.com>
    Signed-off-by: Greg Thelen <gthelen@google.com>
    Acked-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
    ---
    include/linux/page_cgroup.h | 23 +++++++++++++++++++++++
    1 files changed, 23 insertions(+), 0 deletions(-)

    diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h
    index f5de21d..a002ba8 100644
    --- a/include/linux/page_cgroup.h
    +++ b/include/linux/page_cgroup.h
    @@ -10,6 +10,9 @@ enum {
    /* flags for mem_cgroup and file and I/O status */
    PCG_MOVE_LOCK, /* For race between move_account v.s. following bits */
    PCG_FILE_MAPPED, /* page is accounted as "mapped" */
    + PCG_FILE_DIRTY, /* page is dirty */
    + PCG_FILE_WRITEBACK, /* page is under writeback */
    + PCG_FILE_UNSTABLE_NFS, /* page is NFS unstable */
    /* No lock in page_cgroup */
    PCG_ACCT_LRU, /* page has been accounted for (under lru_lock) */
    __NR_PCG_FLAGS,
    @@ -67,6 +70,10 @@ static inline void ClearPageCgroup##uname(struct page_cgroup *pc) \
    static inline int TestClearPageCgroup##uname(struct page_cgroup *pc) \
    { return test_and_clear_bit(PCG_##lname, &pc->flags); }

    +#define TESTSETPCGFLAG(uname, lname) \
    +static inline int TestSetPageCgroup##uname(struct page_cgroup *pc) \
    + { return test_and_set_bit(PCG_##lname, &pc->flags); }
    +
    /* Cache flag is set only once (at allocation) */
    TESTPCGFLAG(Cache, CACHE)
    CLEARPCGFLAG(Cache, CACHE)
    @@ -86,6 +93,22 @@ SETPCGFLAG(FileMapped, FILE_MAPPED)
    CLEARPCGFLAG(FileMapped, FILE_MAPPED)
    TESTPCGFLAG(FileMapped, FILE_MAPPED)

    +SETPCGFLAG(FileDirty, FILE_DIRTY)
    +CLEARPCGFLAG(FileDirty, FILE_DIRTY)
    +TESTPCGFLAG(FileDirty, FILE_DIRTY)
    +TESTCLEARPCGFLAG(FileDirty, FILE_DIRTY)
    +TESTSETPCGFLAG(FileDirty, FILE_DIRTY)
    +
    +SETPCGFLAG(FileWriteback, FILE_WRITEBACK)
    +CLEARPCGFLAG(FileWriteback, FILE_WRITEBACK)
    +TESTPCGFLAG(FileWriteback, FILE_WRITEBACK)
    +
    +SETPCGFLAG(FileUnstableNFS, FILE_UNSTABLE_NFS)
    +CLEARPCGFLAG(FileUnstableNFS, FILE_UNSTABLE_NFS)
    +TESTPCGFLAG(FileUnstableNFS, FILE_UNSTABLE_NFS)
    +TESTCLEARPCGFLAG(FileUnstableNFS, FILE_UNSTABLE_NFS)
    +TESTSETPCGFLAG(FileUnstableNFS, FILE_UNSTABLE_NFS)
    +
    SETPCGFLAG(Migration, MIGRATION)
    CLEARPCGFLAG(Migration, MIGRATION)
    TESTPCGFLAG(Migration, MIGRATION)
    --
    1.7.3.1


    \
     
     \ /
      Last update: 2011-02-25 22:41    [W:0.024 / U:0.172 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site