The patch titled Subject: memcg: track resource index in cftype private has been removed from the -mm tree. Its filename was memcg-track-resource-index-in-cftype-private.patch This patch was dropped because an updated version will be merged The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ From: "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Subject: memcg: track resource index in cftype private This patch adds a new charge type _MEMHUGETLB for tracking hugetlb resources. We also use cftype to encode the hugetlb resource index. This helps in using same memcg callbacks for hugetlb control files. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> Cc: Hillf Danton <dhillf@xxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxx> Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/memcontrol.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff -puN mm/memcontrol.c~memcg-track-resource-index-in-cftype-private mm/memcontrol.c --- a/mm/memcontrol.c~memcg-track-resource-index-in-cftype-private +++ a/mm/memcontrol.c @@ -403,9 +403,14 @@ enum charge_type { #define _MEM (0) #define _MEMSWAP (1) #define _OOM_TYPE (2) -#define MEMFILE_PRIVATE(x, val) ((x) << 16 | (val)) -#define MEMFILE_TYPE(val) ((val) >> 16 & 0xffff) -#define MEMFILE_ATTR(val) ((val) & 0xffff) +#define _MEMHUGETLB (3) + +/* 0 ... val ...16.... x...24...idx...32*/ +#define __MEMFILE_PRIVATE(idx, x, val) ((idx) << 24 | ((x) << 16) | (val)) +#define MEMFILE_PRIVATE(x, val) __MEMFILE_PRIVATE(0, x, val) +#define MEMFILE_TYPE(val) ((val) >> 16 & 0xff) +#define MEMFILE_IDX(val) ((val) >> 24 & 0xff) +#define MEMFILE_ATTR(val) ((val) & 0xffff) /* Used for OOM nofiier */ #define OOM_CONTROL (0) @@ -3969,7 +3974,7 @@ static ssize_t mem_cgroup_read(struct cg struct mem_cgroup *memcg = mem_cgroup_from_cont(cont); char str[64]; u64 val; - int type, name, len; + int type, name, len, idx; type = MEMFILE_TYPE(cft->private); name = MEMFILE_ATTR(cft->private); @@ -3990,6 +3995,10 @@ static ssize_t mem_cgroup_read(struct cg else val = res_counter_read_u64(&memcg->memsw, name); break; + case _MEMHUGETLB: + idx = MEMFILE_IDX(cft->private); + val = res_counter_read_u64(&memcg->hugepage[idx], name); + break; default: BUG(); } @@ -4027,7 +4036,10 @@ static int mem_cgroup_write(struct cgrou break; if (type == _MEM) ret = mem_cgroup_resize_limit(memcg, val); - else + else if (type == _MEMHUGETLB) { + int idx = MEMFILE_IDX(cft->private); + ret = res_counter_set_limit(&memcg->hugepage[idx], val); + } else ret = mem_cgroup_resize_memsw_limit(memcg, val); break; case RES_SOFT_LIMIT: @@ -4093,7 +4105,10 @@ static int mem_cgroup_reset(struct cgrou case RES_MAX_USAGE: if (type == _MEM) res_counter_reset_max(&memcg->res); - else + else if (type == _MEMHUGETLB) { + int idx = MEMFILE_IDX(event); + res_counter_reset_max(&memcg->hugepage[idx]); + } else res_counter_reset_max(&memcg->memsw); break; case RES_FAILCNT: _ Patches currently in -mm which might be from aneesh.kumar@xxxxxxxxxxxxxxxxxx are linux-next.patch hugetlbfs-add-memcg-control-files-for-hugetlbfs.patch hugetlbfs-add-memcg-control-files-for-hugetlbfs-use-scnprintf-instead-of-sprintf.patch hugetlbfs-add-memcg-control-files-for-hugetlbfs-use-scnprintf-instead-of-sprintf-fix.patch hugetlbfs-add-memcg-control-files-for-hugetlbfs-add-failcnt-support-for-hugetlb-extension.patch hugetlbfs-add-a-list-for-tracking-in-use-hugetlb-pages.patch memcg-move-hugetlb-resource-count-to-parent-cgroup-on-memcg-removal.patch memcg-move-hugetlb-resource-count-to-parent-cgroup-on-memcg-removal-fix.patch memcg-move-hugetlb-resource-count-to-parent-cgroup-on-memcg-removal-fix-fix.patch hugetlb-migrate-memcg-info-from-oldpage-to-new-page-during-migration.patch hugetlb-migrate-memcg-info-from-oldpage-to-new-page-during-migration-fix.patch hugetlb-migrate-memcg-info-from-oldpage-to-new-page-during-migration-fix-2.patch memcg-add-memory-controller-documentation-for-hugetlb-management.patch memcg-fix-error-code-in-hugetlb_force_memcg_empty.patch memcg-fix-error-code-in-hugetlb_force_memcg_empty-v2.patch memcg-fix-error-code-in-hugetlb_force_memcg_empty-v2-checkpatch-fixes.patch memcg-use-res_counter_uncharge_until-in-mem_cgroup_move_hugetlb_parent.patch memcg-move-charges-to-root-cgroup-if-use_hierarchy=0-in-mem_cgroup_move_hugetlb_parent.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html