lkml.org 
[lkml]   [2012]   [Feb]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/9] memcg: add page_cgroup flags for dirty page tracking
    From: Greg Thelen <gthelen@google.com>

    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 <andrea@betterlinux.com>
    Signed-off-by: Greg Thelen <gthelen@google.com>
    Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
    Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
    ---
    include/linux/page_cgroup.h | 23 +++++++++++++++++++++++
    1 file changed, 23 insertions(+)

    --- linux.orig/include/linux/page_cgroup.h 2012-02-19 10:53:14.000000000 +0800
    +++ linux/include/linux/page_cgroup.h 2012-02-19 10:53:16.000000000 +0800
    @@ -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 */
    __NR_PCG_FLAGS,
    };

    @@ -64,6 +67,10 @@ static inline void ClearPageCgroup##unam
    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)
    @@ -77,6 +84,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)



    \
     
     \ /
      Last update: 2012-02-28 16:01    [W:0.032 / U:29.560 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site