The patch titled Subject: memcg: track resource index in cftype private has been added to the -mm tree. Its filename is memcg-track-resource-index-in-cftype-private.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ 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 @@ -381,9 +381,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) @@ -4003,7 +4008,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); @@ -4024,6 +4029,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(); } @@ -4061,7 +4070,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: @@ -4127,7 +4139,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: _ Subject: Subject: memcg: track resource index in cftype private Patches currently in -mm which might be from aneesh.kumar@xxxxxxxxxxxxxxxxxx are linux-next.patch hugetlbfs-lockdep-annotate-root-inode-properly.patch hugetlb-rename-max_hstate-to-hugetlb_max_hstate.patch hugetlbfs-dont-use-err_ptr-with-vm_fault-values.patch hugetlbfs-add-an-inline-helper-for-finding-hstate-index.patch hugetlb-use-mmu_gather-instead-of-a-temporary-linked-list-for-accumulating-pages.patch hugetlb-avoid-taking-i_mmap_mutex-in-unmap_single_vma-for-hugetlb.patch hugetlb-simplify-migrate_huge_page.patch memcg-add-hugetlb-extension.patch hugetlb-add-charge-uncharge-calls-for-hugetlb-alloc-free.patch memcg-track-resource-index-in-cftype-private.patch hugetlbfs-add-memcg-control-files-for-hugetlbfs.patch hugetlbfs-add-a-list-for-tracking-in-use-hugetlb-pages.patch memcg-move-hugetlb-resource-count-to-parent-cgroup-on-memcg-removal.patch hugetlb-migrate-memcg-info-from-oldpage-to-new-page-during-migration.patch memcg-add-memory-controller-documentation-for-hugetlb-management.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