* [PATCH] mm/hugetlb_cgroup: Add list_del to remove unused page from hugepage_activelist when hugepage migration
@ 2012-07-11 3:51 Wanpeng Li
2012-07-11 8:32 ` Aneesh Kumar K.V
0 siblings, 1 reply; 5+ messages in thread
From: Wanpeng Li @ 2012-07-11 3:51 UTC (permalink / raw)
To: linux-mm
Cc: Andrew Morton, Li Zefan, Tejun Heo, Aneesh Kumar K.V, cgroups,
linux-kernel, Wanpeng Li
From: Wanpeng Li <liwp@linux.vnet.ibm.com>
hugepage_activelist is used to track currently used HugeTLB pages.
We can find the in-use HugeTLB pages to support HugeTLB cgroup
removal. Don't keep unused page in hugetlb_activelist too long.
Otherwise, on cgroup removal we should update the unused page's
charge to parent count. To reduce this overhead, remove unused page
from hugepage_activelist immediately.
Signed-off-by: Wanpeng Li <liwp.linux@gmail.com>
---
mm/hugetlb_cgroup.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c
index b834e8d..d819d66 100644
--- a/mm/hugetlb_cgroup.c
+++ b/mm/hugetlb_cgroup.c
@@ -398,6 +398,7 @@ void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage)
spin_lock(&hugetlb_lock);
h_cg = hugetlb_cgroup_from_page(oldhpage);
set_hugetlb_cgroup(oldhpage, NULL);
+ list_del(&oldhpage->lru);
/* move the h_cg details to new cgroup */
set_hugetlb_cgroup(newhpage, h_cg);
--
1.7.5.4
--
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>
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] mm/hugetlb_cgroup: Add list_del to remove unused page from hugepage_activelist when hugepage migration
2012-07-11 3:51 [PATCH] mm/hugetlb_cgroup: Add list_del to remove unused page from hugepage_activelist when hugepage migration Wanpeng Li
@ 2012-07-11 8:32 ` Aneesh Kumar K.V
[not found] ` <87wr2aitpk.fsf-6yE53ggjAfyqSkle7U1LjlaTQe2KTcn/@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Aneesh Kumar K.V @ 2012-07-11 8:32 UTC (permalink / raw)
To: Wanpeng Li, linux-mm
Cc: Andrew Morton, Li Zefan, Tejun Heo, cgroups, linux-kernel,
Wanpeng Li
Wanpeng Li <liwp.linux@gmail.com> writes:
> From: Wanpeng Li <liwp@linux.vnet.ibm.com>
>
> hugepage_activelist is used to track currently used HugeTLB pages.
> We can find the in-use HugeTLB pages to support HugeTLB cgroup
> removal. Don't keep unused page in hugetlb_activelist too long.
> Otherwise, on cgroup removal we should update the unused page's
> charge to parent count. To reduce this overhead, remove unused page
> from hugepage_activelist immediately.
>
> Signed-off-by: Wanpeng Li <liwp.linux@gmail.com>
> ---
> mm/hugetlb_cgroup.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c
> index b834e8d..d819d66 100644
> --- a/mm/hugetlb_cgroup.c
> +++ b/mm/hugetlb_cgroup.c
> @@ -398,6 +398,7 @@ void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage)
> spin_lock(&hugetlb_lock);
> h_cg = hugetlb_cgroup_from_page(oldhpage);
> set_hugetlb_cgroup(oldhpage, NULL);
> + list_del(&oldhpage->lru);
>
> /* move the h_cg details to new cgroup */
> set_hugetlb_cgroup(newhpage, h_cg);
put_page on the oldhpage will do that. If we do list_del here
free_huge_page() will have error list_move().
-aneesh
--
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>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mm/hugetlb_cgroup: Add list_del to remove unused page from hugepage_activelist when hugepage migration
[not found] ` <87wr2aitpk.fsf-6yE53ggjAfyqSkle7U1LjlaTQe2KTcn/@public.gmane.org>
@ 2012-07-11 9:17 ` Wanpeng Li
2012-07-11 9:45 ` Aneesh Kumar K.V
0 siblings, 1 reply; 5+ messages in thread
From: Wanpeng Li @ 2012-07-11 9:17 UTC (permalink / raw)
To: Aneesh Kumar K.V
Cc: Andrew Morton, Li Zefan, Tejun Heo,
cgroups-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA, Wanpeng Li
On Wed, Jul 11, 2012 at 02:02:23PM +0530, Aneesh Kumar K.V wrote:
>Wanpeng Li <liwp.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
>
>> From: Wanpeng Li <liwp-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
>>
>> hugepage_activelist is used to track currently used HugeTLB pages.
>> We can find the in-use HugeTLB pages to support HugeTLB cgroup
>> removal. Don't keep unused page in hugetlb_activelist too long.
>> Otherwise, on cgroup removal we should update the unused page's
>> charge to parent count. To reduce this overhead, remove unused page
>> from hugepage_activelist immediately.
>>
>> Signed-off-by: Wanpeng Li <liwp.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> ---
>> mm/hugetlb_cgroup.c | 1 +
>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c
>> index b834e8d..d819d66 100644
>> --- a/mm/hugetlb_cgroup.c
>> +++ b/mm/hugetlb_cgroup.c
>> @@ -398,6 +398,7 @@ void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage)
>> spin_lock(&hugetlb_lock);
>> h_cg = hugetlb_cgroup_from_page(oldhpage);
>> set_hugetlb_cgroup(oldhpage, NULL);
>> + list_del(&oldhpage->lru);
>>
>> /* move the h_cg details to new cgroup */
>> set_hugetlb_cgroup(newhpage, h_cg);
>
>put_page on the oldhpage will do that. If we do list_del here
>free_huge_page() will have error list_move().
I don't know if move the page to other lists when migration in order
to reduce overhead I mentioned make sense. :-)
Regards,
Wanpeng Li
>
>-aneesh
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mm/hugetlb_cgroup: Add list_del to remove unused page from hugepage_activelist when hugepage migration
2012-07-11 9:17 ` Wanpeng Li
@ 2012-07-11 9:45 ` Aneesh Kumar K.V
[not found] ` <87txxeiqc0.fsf-6yE53ggjAfyqSkle7U1LjlaTQe2KTcn/@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Aneesh Kumar K.V @ 2012-07-11 9:45 UTC (permalink / raw)
To: Wanpeng Li
Cc: Andrew Morton, Li Zefan, Tejun Heo, cgroups, linux-kernel,
Wanpeng Li
Wanpeng Li <liwp.linux@gmail.com> writes:
> On Wed, Jul 11, 2012 at 02:02:23PM +0530, Aneesh Kumar K.V wrote:
>>Wanpeng Li <liwp.linux@gmail.com> writes:
>>
>>> From: Wanpeng Li <liwp@linux.vnet.ibm.com>
>>>
>>> hugepage_activelist is used to track currently used HugeTLB pages.
>>> We can find the in-use HugeTLB pages to support HugeTLB cgroup
>>> removal. Don't keep unused page in hugetlb_activelist too long.
>>> Otherwise, on cgroup removal we should update the unused page's
>>> charge to parent count. To reduce this overhead, remove unused page
>>> from hugepage_activelist immediately.
>>>
>>> Signed-off-by: Wanpeng Li <liwp.linux@gmail.com>
>>> ---
>>> mm/hugetlb_cgroup.c | 1 +
>>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c
>>> index b834e8d..d819d66 100644
>>> --- a/mm/hugetlb_cgroup.c
>>> +++ b/mm/hugetlb_cgroup.c
>>> @@ -398,6 +398,7 @@ void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage)
>>> spin_lock(&hugetlb_lock);
>>> h_cg = hugetlb_cgroup_from_page(oldhpage);
>>> set_hugetlb_cgroup(oldhpage, NULL);
>>> + list_del(&oldhpage->lru);
>>>
>>> /* move the h_cg details to new cgroup */
>>> set_hugetlb_cgroup(newhpage, h_cg);
>>
>>put_page on the oldhpage will do that. If we do list_del here
>>free_huge_page() will have error list_move().
>
> I don't know if move the page to other lists when migration in order
> to reduce overhead I mentioned make sense. :-)
>
Even if we are in the active_list, we don't get anything wrong because
hugetlb cgroup is set to NULL for the old hugetlb page. The above patch is
wrong and will result in crash when we try to put_page the oldhpage.
-aneesh
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mm/hugetlb_cgroup: Add list_del to remove unused page from hugepage_activelist when hugepage migration
[not found] ` <87txxeiqc0.fsf-6yE53ggjAfyqSkle7U1LjlaTQe2KTcn/@public.gmane.org>
@ 2012-07-11 10:16 ` Wanpeng Li
0 siblings, 0 replies; 5+ messages in thread
From: Wanpeng Li @ 2012-07-11 10:16 UTC (permalink / raw)
To: Aneesh Kumar K.V
Cc: Andrew Morton, Li Zefan, Tejun Heo,
cgroups-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA, Wanpeng Li
On Wed, Jul 11, 2012 at 03:15:19PM +0530, Aneesh Kumar K.V wrote:
>Wanpeng Li <liwp.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
>
>> On Wed, Jul 11, 2012 at 02:02:23PM +0530, Aneesh Kumar K.V wrote:
>>>Wanpeng Li <liwp.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
>>>
>>>> From: Wanpeng Li <liwp-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
>>>>
>>>> hugepage_activelist is used to track currently used HugeTLB pages.
>>>> We can find the in-use HugeTLB pages to support HugeTLB cgroup
>>>> removal. Don't keep unused page in hugetlb_activelist too long.
>>>> Otherwise, on cgroup removal we should update the unused page's
>>>> charge to parent count. To reduce this overhead, remove unused page
>>>> from hugepage_activelist immediately.
>>>>
>>>> Signed-off-by: Wanpeng Li <liwp.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>>> ---
>>>> mm/hugetlb_cgroup.c | 1 +
>>>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c
>>>> index b834e8d..d819d66 100644
>>>> --- a/mm/hugetlb_cgroup.c
>>>> +++ b/mm/hugetlb_cgroup.c
>>>> @@ -398,6 +398,7 @@ void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage)
>>>> spin_lock(&hugetlb_lock);
>>>> h_cg = hugetlb_cgroup_from_page(oldhpage);
>>>> set_hugetlb_cgroup(oldhpage, NULL);
>>>> + list_del(&oldhpage->lru);
>>>>
>>>> /* move the h_cg details to new cgroup */
>>>> set_hugetlb_cgroup(newhpage, h_cg);
>>>
>>>put_page on the oldhpage will do that. If we do list_del here
>>>free_huge_page() will have error list_move().
>>
>> I don't know if move the page to other lists when migration in order
>> to reduce overhead I mentioned make sense. :-)
>>
>
>Even if we are in the active_list, we don't get anything wrong because
>hugetlb cgroup is set to NULL for the old hugetlb page. The above patch is
>wrong and will result in crash when we try to put_page the oldhpage.
Hi aneesh, I am happy we are in the same company. I am a guy in LTC
China. I want to know if there any features or works about hugetlb
cgroup I can do with you!
Regards,
Wanpeng Li
>
>-aneesh
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-07-11 10:16 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-11 3:51 [PATCH] mm/hugetlb_cgroup: Add list_del to remove unused page from hugepage_activelist when hugepage migration Wanpeng Li
2012-07-11 8:32 ` Aneesh Kumar K.V
[not found] ` <87wr2aitpk.fsf-6yE53ggjAfyqSkle7U1LjlaTQe2KTcn/@public.gmane.org>
2012-07-11 9:17 ` Wanpeng Li
2012-07-11 9:45 ` Aneesh Kumar K.V
[not found] ` <87txxeiqc0.fsf-6yE53ggjAfyqSkle7U1LjlaTQe2KTcn/@public.gmane.org>
2012-07-11 10:16 ` Wanpeng Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).