Re: [PATCH -V8 10/16] hugetlb/cgroup: Add the cgroup pointer to page lru
From: Kamezawa Hiroyuki <hidden>
Date: 2012-06-12 07:54:23
Also in:
linux-mm, lkml
(2012/06/09 17:59), Aneesh Kumar K.V wrote:
quoted hunk ↗ jump to hunk
From: "Aneesh Kumar K.V"<redacted> 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<redacted> --- 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, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>