Re: [PATCH -V8 10/16] hugetlb/cgroup: Add the cgroup pointer to pagelru

From: Kamezawa Hiroyuki
Date: Tue Jun 12 2012 - 03:54:16 EST


(2012/06/09 17:59), Aneesh Kumar K.V wrote:
> From: "Aneesh Kumar K.V"<aneesh.kumar@xxxxxxxxxxxxxxxxxx>
>
> Add the hugetlb cgroup pointer to 3rd page lru.next. This limit
> the usage to hugetlb cgroup to only hugepages with 3 or more
> normal pages. I guess that is an acceptable limitation.
>
> Signed-off-by: Aneesh Kumar K.V<aneesh.kumar@xxxxxxxxxxxxxxxxxx>
> ---
> include/linux/hugetlb_cgroup.h | 31 +++++++++++++++++++++++++++++++
> mm/hugetlb.c | 4 ++++
> 2 files changed, 35 insertions(+)
>
> diff --git a/include/linux/hugetlb_cgroup.h b/include/linux/hugetlb_cgroup.h
> index 5794be4..ceff1d5 100644
> --- a/include/linux/hugetlb_cgroup.h
> +++ b/include/linux/hugetlb_cgroup.h
> @@ -26,6 +26,26 @@ struct hugetlb_cgroup {
> };
>
> #ifdef CONFIG_CGROUP_HUGETLB_RES_CTLR
> +static inline struct hugetlb_cgroup *hugetlb_cgroup_from_page(struct page *page)
> +{
> + if (!PageHuge(page))
> + return NULL;

I'm not very sure but....

VM_BUG_ON(!PageHuge(page)) ??



> + if (compound_order(page)< 3)
> + return NULL;
> + return (struct hugetlb_cgroup *)page[2].lru.next;
> +}
> +
> +static inline
> +int set_hugetlb_cgroup(struct page *page, struct hugetlb_cgroup *h_cg)
> +{
> + if (!PageHuge(page))
> + return -1;

ditto.

> + if (compound_order(page)< 3)
> + return -1;
> + page[2].lru.next = (void *)h_cg;
> + return 0;
> +}
> +

Thanks,
-Kame

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/