Thread (71 messages) 71 messages, 7 authors, 2012-06-13

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

From: Michal Hocko <hidden>
Date: 2012-06-11 09:17:02
Also in: cgroups, lkml

On Mon 11-06-12 14:33:52, Aneesh Kumar K.V wrote:
Michal Hocko [off-list ref] writes:
quoted
On Sat 09-06-12 14:29:55, Aneesh Kumar K.V wrote:
quoted
From: "Aneesh Kumar K.V" <redacted>

Add the hugetlb cgroup pointer to 3rd page lru.next.
Interesting and I really like the idea much more than tracking by
page_cgroup.
quoted
This limit the usage to hugetlb cgroup to only hugepages with 3 or
more normal pages. I guess that is an acceptable limitation.
Agreed.
quoted
Signed-off-by: Aneesh Kumar K.V <redacted>
Other than some nits I like this.
Thanks!
quoted
---
 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;
+	if (compound_order(page) < 3)
Why 3? I think you wanted 2 here, right?
Yes that should be 2. I updated that in an earlier. Already in v9
version I have locally.
ohh, I should have read replies to the patch first where you already
mentioned that you are aware of that.
Maybe it would be worth something like:
/* Minimum page order trackable by hugetlb cgroup.
 * At least 3 pages are necessary for all the tracking information.
 */
#define HUGETLB_CGROUP_MIN_ORDER	2
quoted
quoted
@@ -591,6 +592,7 @@ static void update_and_free_page(struct hstate *h, struct page *page)
 				1 << PG_active | 1 << PG_reserved |
 				1 << PG_private | 1 << PG_writeback);
 	}
+	BUG_ON(hugetlb_cgroup_from_page(page));
What about VM_BUG_ON?
Will do, So when do one decide to choose VM_BUG_ON against BUG_ON ?
I think that VM_ variant is more approapriate here because it is more a
debugging thing rather than a hard failure invariant.

-- 
Michal Hocko
SUSE Labs
SUSE LINUX s.r.o.
Lihovarska 1060/12
190 00 Praha 9    
Czech Republic

--
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>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help