Prev: [RFC][PATCH 05/11] blkiocg async: __set_page_dirty_nobuffer not to record process info
Next: [RFC][PATCH 02/11] blkiocg async: The main part of iotrack
From: Munehiro Ikeda on 8 Jul 2010 23:20 This patch makes page_cgroup independent from memory controller so that kernel functionalities other than memory controller can use page_cgroup. This patch is based on a patch posted from Ryo Tsuruta on Oct 2, 2009 titled "The new page_cgroup framework". Signed-off-by: Hirokazu Takahashi <taka(a)valinux.co.jp> Signed-off-by: Ryo Tsuruta <ryov(a)valinux.co.jp> Signed-off-by: Munehiro "Muuhh" Ikeda <m-ikeda(a)ds.jp.nec.com> --- include/linux/mmzone.h | 4 ++-- include/linux/page_cgroup.h | 4 ++-- init/Kconfig | 4 ++++ mm/Makefile | 3 ++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index b4d109e..d3a9bf7 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -612,7 +612,7 @@ typedef struct pglist_data { int nr_zones; #ifdef CONFIG_FLAT_NODE_MEM_MAP /* means !SPARSEMEM */ struct page *node_mem_map; -#ifdef CONFIG_CGROUP_MEM_RES_CTLR +#ifdef CONFIG_CGROUP_PAGE struct page_cgroup *node_page_cgroup; #endif #endif @@ -971,7 +971,7 @@ struct mem_section { /* See declaration of similar field in struct zone */ unsigned long *pageblock_flags; -#ifdef CONFIG_CGROUP_MEM_RES_CTLR +#ifdef CONFIG_CGROUP_PAGE /* * If !SPARSEMEM, pgdat doesn't have page_cgroup pointer. We use * section. (see memcontrol.h/page_cgroup.h about this.) diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h index 5bb13b3..6a21b0d 100644 --- a/include/linux/page_cgroup.h +++ b/include/linux/page_cgroup.h @@ -1,7 +1,7 @@ #ifndef __LINUX_PAGE_CGROUP_H #define __LINUX_PAGE_CGROUP_H -#ifdef CONFIG_CGROUP_MEM_RES_CTLR +#ifdef CONFIG_CGROUP_PAGE #include <linux/bit_spinlock.h> /* * Page Cgroup can be considered as an extended mem_map. @@ -104,7 +104,7 @@ static inline void unlock_page_cgroup(struct page_cgroup *pc) bit_spin_unlock(PCG_LOCK, &pc->flags); } -#else /* CONFIG_CGROUP_MEM_RES_CTLR */ +#else /* CONFIG_CGROUP_PAGE */ struct page_cgroup; static inline void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat) diff --git a/init/Kconfig b/init/Kconfig index 5cff9a9..2e40f2f 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -648,6 +648,10 @@ config DEBUG_BLK_CGROUP endif # CGROUPS +config CGROUP_PAGE + def_bool y + depends on CGROUP_MEM_RES_CTLR + config MM_OWNER bool diff --git a/mm/Makefile b/mm/Makefile index 8982504..57b112e 100644 --- a/mm/Makefile +++ b/mm/Makefile @@ -40,7 +40,8 @@ else obj-y += percpu_up.o endif obj-$(CONFIG_QUICKLIST) += quicklist.o -obj-$(CONFIG_CGROUP_MEM_RES_CTLR) += memcontrol.o page_cgroup.o +obj-$(CONFIG_CGROUP_MEM_RES_CTLR) += memcontrol.o +obj-$(CONFIG_CGROUP_PAGE) += page_cgroup.o obj-$(CONFIG_MEMORY_FAILURE) += memory-failure.o obj-$(CONFIG_HWPOISON_INJECT) += hwpoison-inject.o obj-$(CONFIG_DEBUG_KMEMLEAK) += kmemleak.o -- 1.6.2.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |