lkml.org 
[lkml]   [2010]   [Oct]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 01/11] 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 5bb13b3..b59c298 100644
    --- a/include/linux/page_cgroup.h
    +++ b/include/linux/page_cgroup.h
    @@ -40,6 +40,9 @@ enum {
    PCG_USED, /* this object is in use. */
    PCG_ACCT_LRU, /* page has been accounted for */
    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 */
    PCG_MIGRATION, /* under page migration */
    };

    @@ -59,6 +62,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); }
    +
    TESTPCGFLAG(Locked, LOCK)

    /* Cache flag is set only once (at allocation) */
    @@ -80,6 +87,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: 2010-10-29 09:13    [W:4.137 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site