All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mel Gorman <mel@csn.ul.ie>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: linux-mm@kvack.org,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Adam Litke <agl@us.ibm.com>, Avi Kivity <avi@redhat.com>,
	Hugh Dickins <hugh.dickins@tiscali.co.uk>,
	Rik van Riel <riel@redhat.com>,
	Dave Hansen <dave@linux.vnet.ibm.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Ingo Molnar <mingo@elte.hu>, Mike Travis <travis@sgi.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Christoph Lameter <cl@linux-foundation.org>,
	Chris Wright <chrisw@sous-sol.org>,
	bpicco@redhat.com,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Balbir Singh <balbir@linux.vnet.ibm.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>,
	Chris Mason <chris.mason@oracle.com>,
	Borislav Petkov <bp@alien8.de>
Subject: Re: [PATCH 03 of 66] transparent hugepage support documentation
Date: Fri, 26 Nov 2010 11:40:28 +0000	[thread overview]
Message-ID: <20101126114028.GM26037@csn.ul.ie> (raw)
In-Reply-To: <20101125143520.GM6118@random.random>

On Thu, Nov 25, 2010 at 03:35:20PM +0100, Andrea Arcangeli wrote:
> > <SNIP>

I agree with all the changes you made up to this point.

> > > +- if some task quits and more hugepages become available (either
> > > +  immediately in the buddy or through the VM), guest physical memory
> > > +  backed by regular pages should be relocated on hugepages
> > > +  automatically (with khugepaged)
> > > +
> > > +- it doesn't require boot-time memory reservation and in turn it uses
> > 
> > neither does hugetlbfs.
> > 
> > > +  hugepages whenever possible (the only possible reservation here is
> > > +  kernelcore= to avoid unmovable pages to fragment all the memory but
> > > +  such a tweak is not specific to transparent hugepage support and
> > > +  it's a generic feature that applies to all dynamic high order
> > > +  allocations in the kernel)
> > > +
> > > +- this initial support only offers the feature in the anonymous memory
> > > +  regions but it'd be ideal to move it to tmpfs and the pagecache
> > > +  later
> > > +
> > > +Transparent Hugepage Support maximizes the usefulness of free memory
> > > +if compared to the reservation approach of hugetlbfs by allowing all
> > > +unused memory to be used as cache or other movable (or even unmovable
> > > +entities).
> > 
> > hugetlbfs with memory overcommit offers something similar, particularly
> > in combination with libhugetlbfs with can automatically fall back to base
> > pages. I've run benchmarks comparing hugetlbfs using a static hugepage
> > pool with hugetlbfs dynamically allocating hugepages as required with no
> > discernable performance difference. So this statement is not strictly accurate.
> 
> Ok, but without libhugetlbfs fallback to regular pages splitting the
> vma and creating a no-hugetlbfs one in the middle, it really requires
> memory reservation to be _sure_ (libhugtlbfs runs outside of hugetlbfs
> and I doubt it allows later collapsing like khugepaged provides,
> furthermore I'm comparing kernel vs kernel not kernel vs
> kernel+userlandwrapping)...So I think mentioning the fact THP doesn't
> require memory reservation is more or less fair enough.

Ok, what you say is true. There is no collapsing of huge pages in
hugetlbfs and reservations are required to be sure.

> I removed
> "boot-time" though.
> 
> > > +It doesn't require reservation to prevent hugepage
> > > +allocation failures to be noticeable from userland. It allows paging
> > > +and all other advanced VM features to be available on the
> > > +hugepages. It requires no modifications for applications to take
> > > +advantage of it.
> > > +
> > > +Applications however can be further optimized to take advantage of
> > > +this feature, like for example they've been optimized before to avoid
> > > +a flood of mmap system calls for every malloc(4k). Optimizing userland
> > > +is by far not mandatory and khugepaged already can take care of long
> > > +lived page allocations even for hugepage unaware applications that
> > > +deals with large amounts of memory.
> > > +
> > > +In certain cases when hugepages are enabled system wide, application
> > > +may end up allocating more memory resources. An application may mmap a
> > > +large region but only touch 1 byte of it, in that case a 2M page might
> > > +be allocated instead of a 4k page for no good. This is why it's
> > > +possible to disable hugepages system-wide and to only have them inside
> > > +MADV_HUGEPAGE madvise regions.
> > > +
> > > +Embedded systems should enable hugepages only inside madvise regions
> > > +to eliminate any risk of wasting any precious byte of memory and to
> > > +only run faster.
> > > +
> > > +Applications that gets a lot of benefit from hugepages and that don't
> > > +risk to lose memory by using hugepages, should use
> > > +madvise(MADV_HUGEPAGE) on their critical mmapped regions.
> > > +
> > > +== sysfs ==
> > > +
> > > +Transparent Hugepage Support can be entirely disabled (mostly for
> > > +debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to
> > > +avoid the risk of consuming more memory resources) or enabled system
> > > +wide. This can be achieved with one of:
> > > +
> > > +echo always >/sys/kernel/mm/transparent_hugepage/enabled
> > > +echo madvise >/sys/kernel/mm/transparent_hugepage/enabled
> > > +echo never >/sys/kernel/mm/transparent_hugepage/enabled
> > > +
> > > +It's also possible to limit defrag efforts in the VM to generate
> > > +hugepages in case they're not immediately free to madvise regions or
> > > +to never try to defrag memory and simply fallback to regular pages
> > > +unless hugepages are immediately available.
> > 
> > This is the first mention of defrag but hey, it's not a paper :)
> 
> Not sure I get it this, is this too early or too late to mention
> defrag? But yes this is not a paper so I guess I don't need to care ;)
> 

You don't need to care. The reader just has to know what defrag means
here. It's not worth sweating over.

> > > <SNIP>

I agree with all the changes.

> 
> > > +The transparent_hugepage/enabled values only affect future
> > > +behavior. So to make them effective you need to restart any
> > 
> > s/behavior/behaviour/
> 
> Funny, after this change my spell checker asks me to rename behaviour
> back to behavior. I'll stick to the spell checker, they are synonymous
> anyway.
> 

They are. Might be a difference in UK and US spelling again.

> > > +In case you can't handle compound pages if they're returned by
> > > +follow_page, the FOLL_SPLIT bit can be specified as parameter to
> > > +follow_page, so that it will split the hugepages before returning
> > > +them. Migration for example passes FOLL_SPLIT as parameter to
> > > +follow_page because it's not hugepage aware and in fact it can't work
> > > +at all on hugetlbfs (but it instead works fine on transparent
> > 
> > hugetlbfs pages can now migrate although it's only used by hwpoison.
> 
> Yep. I'll need to teach migrate to avoid splitting the hugepage to
> migrate it too... (especially for numa, not much for hwpoison). And
> the migration support for hugetlbfs now makes it more complicated to
> migrate transhuge pages too with the same function because that code
> isn't inside a VM_HUGETLB check... Worst case we can check the hugepage
> destructor to differentiate the two, I've yet to check that. Surely
> it's feasible and mostly an implementation issue.
> 

It should be feasible.

> > > +Code walking pagetables but unware about huge pmds can simply call
> > > +split_huge_page_pmd(mm, pmd) where the pmd is the one returned by
> > > +pmd_offset. It's trivial to make the code transparent hugepage aware
> > > +by just grepping for "pmd_offset" and adding split_huge_page_pmd where
> > > +missing after pmd_offset returns the pmd. Thanks to the graceful
> > > +fallback design, with a one liner change, you can avoid to write
> > > +hundred if not thousand of lines of complex code to make your code
> > > +hugepage aware.
> > > +
> > 
> > It'd be nice if you could point to a specific example but by no means
> > mandatory.
> 
> Ok:
> 
> diff --git a/Documentation/vm/transhuge.txt b/Documentation/vm/transhuge.txt
> --- a/Documentation/vm/transhuge.txt
> +++ b/Documentation/vm/transhuge.txt
> @@ -226,6 +226,20 @@ but you can't handle it natively in your
>  calling split_huge_page(page). This is what the Linux VM does before
>  it tries to swapout the hugepage for example.
>  
> +Example to make mremap.c transparent hugepage aware with a one liner
> +change:
> +
> +diff --git a/mm/mremap.c b/mm/mremap.c
> +--- a/mm/mremap.c
> ++++ b/mm/mremap.c
> +@@ -41,6 +41,7 @@ static pmd_t *get_old_pmd(struct mm_stru
> + 		return NULL;
> + 
> + 	pmd = pmd_offset(pud, addr);
> ++	split_huge_page_pmd(mm, pmd);
> + 	if (pmd_none_or_clear_bad(pmd))
> + 		return NULL;
> +
>  == Locking in hugepage aware code ==
>  

Perfect.

>  We want as much code as possible hugepage aware, as calling
> 
> 
> > Ok, I'll need to read the rest of the series to verify if this is
> > correct but by and large it looks good. I think some of the language is
> > stronger than it should be and some of the comparisons with libhugetlbfs
> > are a bit off but I'd be naturally defensive on that topic. Make the
> > suggested changes if you like but if you don't, it shouldn't affect the
> > series.
> 
> I hope it looks better now, thanks!
> 

It does, thanks.

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mel@csn.ul.ie>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: linux-mm@kvack.org,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Adam Litke <agl@us.ibm.com>, Avi Kivity <avi@redhat.com>,
	Hugh Dickins <hugh.dickins@tiscali.co.uk>,
	Rik van Riel <riel@redhat.com>,
	Dave Hansen <dave@linux.vnet.ibm.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Ingo Molnar <mingo@elte.hu>, Mike Travis <travis@sgi.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Christoph Lameter <cl@linux-foundation.org>,
	Chris Wright <chrisw@sous-sol.org>,
	bpicco@redhat.com,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Balbir Singh <balbir@linux.vnet.ibm.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>,
	Chris Mason <chris.mason@oracle.com>,
	Borislav Petkov <bp@alien8.de>
Subject: Re: [PATCH 03 of 66] transparent hugepage support documentation
Date: Fri, 26 Nov 2010 11:40:28 +0000	[thread overview]
Message-ID: <20101126114028.GM26037@csn.ul.ie> (raw)
In-Reply-To: <20101125143520.GM6118@random.random>

On Thu, Nov 25, 2010 at 03:35:20PM +0100, Andrea Arcangeli wrote:
> > <SNIP>

I agree with all the changes you made up to this point.

> > > +- if some task quits and more hugepages become available (either
> > > +  immediately in the buddy or through the VM), guest physical memory
> > > +  backed by regular pages should be relocated on hugepages
> > > +  automatically (with khugepaged)
> > > +
> > > +- it doesn't require boot-time memory reservation and in turn it uses
> > 
> > neither does hugetlbfs.
> > 
> > > +  hugepages whenever possible (the only possible reservation here is
> > > +  kernelcore= to avoid unmovable pages to fragment all the memory but
> > > +  such a tweak is not specific to transparent hugepage support and
> > > +  it's a generic feature that applies to all dynamic high order
> > > +  allocations in the kernel)
> > > +
> > > +- this initial support only offers the feature in the anonymous memory
> > > +  regions but it'd be ideal to move it to tmpfs and the pagecache
> > > +  later
> > > +
> > > +Transparent Hugepage Support maximizes the usefulness of free memory
> > > +if compared to the reservation approach of hugetlbfs by allowing all
> > > +unused memory to be used as cache or other movable (or even unmovable
> > > +entities).
> > 
> > hugetlbfs with memory overcommit offers something similar, particularly
> > in combination with libhugetlbfs with can automatically fall back to base
> > pages. I've run benchmarks comparing hugetlbfs using a static hugepage
> > pool with hugetlbfs dynamically allocating hugepages as required with no
> > discernable performance difference. So this statement is not strictly accurate.
> 
> Ok, but without libhugetlbfs fallback to regular pages splitting the
> vma and creating a no-hugetlbfs one in the middle, it really requires
> memory reservation to be _sure_ (libhugtlbfs runs outside of hugetlbfs
> and I doubt it allows later collapsing like khugepaged provides,
> furthermore I'm comparing kernel vs kernel not kernel vs
> kernel+userlandwrapping)...So I think mentioning the fact THP doesn't
> require memory reservation is more or less fair enough.

Ok, what you say is true. There is no collapsing of huge pages in
hugetlbfs and reservations are required to be sure.

> I removed
> "boot-time" though.
> 
> > > +It doesn't require reservation to prevent hugepage
> > > +allocation failures to be noticeable from userland. It allows paging
> > > +and all other advanced VM features to be available on the
> > > +hugepages. It requires no modifications for applications to take
> > > +advantage of it.
> > > +
> > > +Applications however can be further optimized to take advantage of
> > > +this feature, like for example they've been optimized before to avoid
> > > +a flood of mmap system calls for every malloc(4k). Optimizing userland
> > > +is by far not mandatory and khugepaged already can take care of long
> > > +lived page allocations even for hugepage unaware applications that
> > > +deals with large amounts of memory.
> > > +
> > > +In certain cases when hugepages are enabled system wide, application
> > > +may end up allocating more memory resources. An application may mmap a
> > > +large region but only touch 1 byte of it, in that case a 2M page might
> > > +be allocated instead of a 4k page for no good. This is why it's
> > > +possible to disable hugepages system-wide and to only have them inside
> > > +MADV_HUGEPAGE madvise regions.
> > > +
> > > +Embedded systems should enable hugepages only inside madvise regions
> > > +to eliminate any risk of wasting any precious byte of memory and to
> > > +only run faster.
> > > +
> > > +Applications that gets a lot of benefit from hugepages and that don't
> > > +risk to lose memory by using hugepages, should use
> > > +madvise(MADV_HUGEPAGE) on their critical mmapped regions.
> > > +
> > > +== sysfs ==
> > > +
> > > +Transparent Hugepage Support can be entirely disabled (mostly for
> > > +debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to
> > > +avoid the risk of consuming more memory resources) or enabled system
> > > +wide. This can be achieved with one of:
> > > +
> > > +echo always >/sys/kernel/mm/transparent_hugepage/enabled
> > > +echo madvise >/sys/kernel/mm/transparent_hugepage/enabled
> > > +echo never >/sys/kernel/mm/transparent_hugepage/enabled
> > > +
> > > +It's also possible to limit defrag efforts in the VM to generate
> > > +hugepages in case they're not immediately free to madvise regions or
> > > +to never try to defrag memory and simply fallback to regular pages
> > > +unless hugepages are immediately available.
> > 
> > This is the first mention of defrag but hey, it's not a paper :)
> 
> Not sure I get it this, is this too early or too late to mention
> defrag? But yes this is not a paper so I guess I don't need to care ;)
> 

You don't need to care. The reader just has to know what defrag means
here. It's not worth sweating over.

> > > <SNIP>

I agree with all the changes.

> 
> > > +The transparent_hugepage/enabled values only affect future
> > > +behavior. So to make them effective you need to restart any
> > 
> > s/behavior/behaviour/
> 
> Funny, after this change my spell checker asks me to rename behaviour
> back to behavior. I'll stick to the spell checker, they are synonymous
> anyway.
> 

They are. Might be a difference in UK and US spelling again.

> > > +In case you can't handle compound pages if they're returned by
> > > +follow_page, the FOLL_SPLIT bit can be specified as parameter to
> > > +follow_page, so that it will split the hugepages before returning
> > > +them. Migration for example passes FOLL_SPLIT as parameter to
> > > +follow_page because it's not hugepage aware and in fact it can't work
> > > +at all on hugetlbfs (but it instead works fine on transparent
> > 
> > hugetlbfs pages can now migrate although it's only used by hwpoison.
> 
> Yep. I'll need to teach migrate to avoid splitting the hugepage to
> migrate it too... (especially for numa, not much for hwpoison). And
> the migration support for hugetlbfs now makes it more complicated to
> migrate transhuge pages too with the same function because that code
> isn't inside a VM_HUGETLB check... Worst case we can check the hugepage
> destructor to differentiate the two, I've yet to check that. Surely
> it's feasible and mostly an implementation issue.
> 

It should be feasible.

> > > +Code walking pagetables but unware about huge pmds can simply call
> > > +split_huge_page_pmd(mm, pmd) where the pmd is the one returned by
> > > +pmd_offset. It's trivial to make the code transparent hugepage aware
> > > +by just grepping for "pmd_offset" and adding split_huge_page_pmd where
> > > +missing after pmd_offset returns the pmd. Thanks to the graceful
> > > +fallback design, with a one liner change, you can avoid to write
> > > +hundred if not thousand of lines of complex code to make your code
> > > +hugepage aware.
> > > +
> > 
> > It'd be nice if you could point to a specific example but by no means
> > mandatory.
> 
> Ok:
> 
> diff --git a/Documentation/vm/transhuge.txt b/Documentation/vm/transhuge.txt
> --- a/Documentation/vm/transhuge.txt
> +++ b/Documentation/vm/transhuge.txt
> @@ -226,6 +226,20 @@ but you can't handle it natively in your
>  calling split_huge_page(page). This is what the Linux VM does before
>  it tries to swapout the hugepage for example.
>  
> +Example to make mremap.c transparent hugepage aware with a one liner
> +change:
> +
> +diff --git a/mm/mremap.c b/mm/mremap.c
> +--- a/mm/mremap.c
> ++++ b/mm/mremap.c
> +@@ -41,6 +41,7 @@ static pmd_t *get_old_pmd(struct mm_stru
> + 		return NULL;
> + 
> + 	pmd = pmd_offset(pud, addr);
> ++	split_huge_page_pmd(mm, pmd);
> + 	if (pmd_none_or_clear_bad(pmd))
> + 		return NULL;
> +
>  == Locking in hugepage aware code ==
>  

Perfect.

>  We want as much code as possible hugepage aware, as calling
> 
> 
> > Ok, I'll need to read the rest of the series to verify if this is
> > correct but by and large it looks good. I think some of the language is
> > stronger than it should be and some of the comparisons with libhugetlbfs
> > are a bit off but I'd be naturally defensive on that topic. Make the
> > suggested changes if you like but if you don't, it shouldn't affect the
> > series.
> 
> I hope it looks better now, thanks!
> 

It does, thanks.

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

--
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/ .
Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2010-11-26 11:40 UTC|newest]

Thread overview: 331+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-03 15:27 [PATCH 00 of 66] Transparent Hugepage Support #32 Andrea Arcangeli
2010-11-03 15:27 ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 01 of 66] disable lumpy when compaction is enabled Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-09  3:18   ` KOSAKI Motohiro
2010-11-09  3:18     ` KOSAKI Motohiro
2010-11-09 21:30     ` Andrea Arcangeli
2010-11-09 21:30       ` Andrea Arcangeli
2010-11-09 21:38       ` Mel Gorman
2010-11-09 21:38         ` Mel Gorman
2010-11-09 22:22         ` Andrea Arcangeli
2010-11-09 22:22           ` Andrea Arcangeli
2010-11-10 14:27           ` Mel Gorman
2010-11-10 14:27             ` Mel Gorman
2010-11-10 16:03             ` Andrea Arcangeli
2010-11-10 16:03               ` Andrea Arcangeli
2010-11-18  8:30   ` Mel Gorman
2010-11-18  8:30     ` Mel Gorman
2010-11-03 15:27 ` [PATCH 02 of 66] mm, migration: Fix race between shift_arg_pages and rmap_walk by guaranteeing rmap_walk finds PTEs created within the temporary stack Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-09  3:01   ` KOSAKI Motohiro
2010-11-09  3:01     ` KOSAKI Motohiro
2010-11-09 21:36     ` Andrea Arcangeli
2010-11-09 21:36       ` Andrea Arcangeli
2010-11-18 11:13   ` Mel Gorman
2010-11-18 11:13     ` Mel Gorman
2010-11-18 17:13     ` Mel Gorman
2010-11-18 17:13       ` Mel Gorman
2010-11-19 17:38     ` Andrea Arcangeli
2010-11-19 17:38       ` Andrea Arcangeli
2010-11-19 17:54       ` Linus Torvalds
2010-11-19 17:54         ` Linus Torvalds
2010-11-19 19:26         ` Andrea Arcangeli
2010-11-19 19:26           ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 03 of 66] transparent hugepage support documentation Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-18 11:41   ` Mel Gorman
2010-11-18 11:41     ` Mel Gorman
2010-11-25 14:35     ` Andrea Arcangeli
2010-11-25 14:35       ` Andrea Arcangeli
2010-11-26 11:40       ` Mel Gorman [this message]
2010-11-26 11:40         ` Mel Gorman
2010-11-03 15:27 ` [PATCH 04 of 66] define MADV_HUGEPAGE Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-18 11:44   ` Mel Gorman
2010-11-18 11:44     ` Mel Gorman
2010-11-03 15:27 ` [PATCH 05 of 66] compound_lock Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-18 11:49   ` Mel Gorman
2010-11-18 11:49     ` Mel Gorman
2010-11-18 17:28     ` Linus Torvalds
2010-11-18 17:28       ` Linus Torvalds
2010-11-25 16:21       ` Andrea Arcangeli
2010-11-25 16:21         ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 06 of 66] alter compound get_page/put_page Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-18 12:37   ` Mel Gorman
2010-11-18 12:37     ` Mel Gorman
2010-11-25 16:49     ` Andrea Arcangeli
2010-11-25 16:49       ` Andrea Arcangeli
2010-11-26 11:46       ` Mel Gorman
2010-11-26 11:46         ` Mel Gorman
2010-11-03 15:27 ` [PATCH 07 of 66] update futex compound knowledge Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 08 of 66] fix bad_page to show the real reason the page is bad Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-09  3:03   ` KOSAKI Motohiro
2010-11-09  3:03     ` KOSAKI Motohiro
2010-11-18 12:40   ` Mel Gorman
2010-11-18 12:40     ` Mel Gorman
2010-11-03 15:27 ` [PATCH 09 of 66] clear compound mapping Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 10 of 66] add native_set_pmd_at Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 11 of 66] add pmd paravirt ops Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-26 18:01   ` Andrea Arcangeli
2010-11-26 18:01     ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 12 of 66] no paravirt version of pmd ops Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 13 of 66] export maybe_mkwrite Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2011-01-17 14:14   ` Michal Simek
2011-01-17 14:14     ` Michal Simek
2011-01-17 14:33     ` Andrea Arcangeli
2011-01-17 14:33       ` Andrea Arcangeli
2011-01-18 14:29       ` Michal Simek
2011-01-18 14:29         ` Michal Simek
2011-01-18 20:32         ` Andrea Arcangeli
2011-01-18 20:32           ` Andrea Arcangeli
2011-01-20  7:03           ` Michal Simek
2010-11-03 15:27 ` [PATCH 14 of 66] comment reminder in destroy_compound_page Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 15 of 66] config_transparent_hugepage Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 16 of 66] special pmd_trans_* functions Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-18 12:51   ` Mel Gorman
2010-11-18 12:51     ` Mel Gorman
2010-11-25 17:10     ` Andrea Arcangeli
2010-11-25 17:10       ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 17 of 66] add pmd mangling generic functions Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-18 12:52   ` Mel Gorman
2010-11-18 12:52     ` Mel Gorman
2010-11-18 17:32     ` Linus Torvalds
2010-11-18 17:32       ` Linus Torvalds
2010-11-25 17:35       ` Andrea Arcangeli
2010-11-25 17:35         ` Andrea Arcangeli
2010-11-26 22:24         ` Linus Torvalds
2010-11-26 22:24           ` Linus Torvalds
2010-12-02 17:50           ` Andrea Arcangeli
2010-12-02 17:50             ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 18 of 66] add pmd mangling functions to x86 Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-18 13:04   ` Mel Gorman
2010-11-18 13:04     ` Mel Gorman
2010-11-26 17:57     ` Andrea Arcangeli
2010-11-26 17:57       ` Andrea Arcangeli
2010-11-29 10:23       ` Mel Gorman
2010-11-29 10:23         ` Mel Gorman
2010-11-29 16:59         ` Andrea Arcangeli
2010-11-29 16:59           ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 19 of 66] bail out gup_fast on splitting pmd Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 20 of 66] pte alloc trans splitting Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 21 of 66] add pmd mmu_notifier helpers Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-03 15:27 ` [PATCH 22 of 66] clear page compound Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-18 13:11   ` Mel Gorman
2010-11-18 13:11     ` Mel Gorman
2010-11-03 15:27 ` [PATCH 23 of 66] add pmd_huge_pte to mm_struct Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-18 13:13   ` Mel Gorman
2010-11-18 13:13     ` Mel Gorman
2010-11-03 15:27 ` [PATCH 24 of 66] split_huge_page_mm/vma Andrea Arcangeli
2010-11-03 15:27   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 25 of 66] split_huge_page paging Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 26 of 66] clear_copy_huge_page Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 27 of 66] kvm mmu transparent hugepage support Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 28 of 66] _GFP_NO_KSWAPD Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 13:18   ` Mel Gorman
2010-11-18 13:18     ` Mel Gorman
2010-11-29 19:03     ` Andrea Arcangeli
2010-11-29 19:03       ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 29 of 66] don't alloc harder for gfp nomemalloc even if nowait Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-09  3:05   ` KOSAKI Motohiro
2010-11-09  3:05     ` KOSAKI Motohiro
2010-11-18 13:19   ` Mel Gorman
2010-11-18 13:19     ` Mel Gorman
2010-11-03 15:28 ` [PATCH 30 of 66] transparent hugepage core Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 15:12   ` Mel Gorman
2010-11-18 15:12     ` Mel Gorman
2010-12-07 21:24     ` Andrea Arcangeli
2010-12-07 21:24       ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 31 of 66] split_huge_page anon_vma ordering dependency Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 15:13   ` Mel Gorman
2010-11-18 15:13     ` Mel Gorman
2010-11-03 15:28 ` [PATCH 32 of 66] verify pmd_trans_huge isn't leaking Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 15:15   ` Mel Gorman
2010-11-18 15:15     ` Mel Gorman
2010-11-03 15:28 ` [PATCH 33 of 66] madvise(MADV_HUGEPAGE) Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 15:19   ` Mel Gorman
2010-11-18 15:19     ` Mel Gorman
2010-12-09 17:14     ` Andrea Arcangeli
2010-12-09 17:14       ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 34 of 66] add PageTransCompound Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 15:20   ` Mel Gorman
2010-11-18 15:20     ` Mel Gorman
2010-11-03 15:28 ` [PATCH 35 of 66] pmd_trans_huge migrate bugcheck Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 36 of 66] memcg compound Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 15:26   ` Mel Gorman
2010-11-18 15:26     ` Mel Gorman
2010-11-19  1:10     ` KAMEZAWA Hiroyuki
2010-11-19  1:10       ` KAMEZAWA Hiroyuki
2010-12-14 17:38       ` Andrea Arcangeli
2010-12-14 17:38         ` Andrea Arcangeli
2010-12-15  0:12         ` KAMEZAWA Hiroyuki
2010-12-15  0:12           ` KAMEZAWA Hiroyuki
2010-12-15  5:29           ` Andrea Arcangeli
2010-12-15  5:29             ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 37 of 66] transhuge-memcg: commit tail pages at charge Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 38 of 66] memcontrol: try charging huge pages from stock Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-19  1:14   ` KAMEZAWA Hiroyuki
2010-11-19  1:14     ` KAMEZAWA Hiroyuki
2010-12-14 17:38     ` Andrea Arcangeli
2010-12-14 17:38       ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 39 of 66] memcg huge memory Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-19  1:19   ` KAMEZAWA Hiroyuki
2010-11-19  1:19     ` KAMEZAWA Hiroyuki
2010-12-14 17:38     ` Andrea Arcangeli
2010-12-14 17:38       ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 40 of 66] transparent hugepage vmstat Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 41 of 66] khugepaged Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 42 of 66] khugepaged vma merge Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 43 of 66] don't leave orhpaned swap cache after ksm merging Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-09  3:08   ` KOSAKI Motohiro
2010-11-09  3:08     ` KOSAKI Motohiro
2010-11-09 21:40     ` Andrea Arcangeli
2010-11-09 21:40       ` Andrea Arcangeli
2010-11-10  7:49       ` Hugh Dickins
2010-11-10  7:49         ` Hugh Dickins
2010-11-10 16:08         ` Andrea Arcangeli
2010-11-10 16:08           ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 44 of 66] skip transhuge pages in ksm for now Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 16:06   ` Mel Gorman
2010-11-18 16:06     ` Mel Gorman
2010-12-09 18:13     ` Andrea Arcangeli
2010-12-09 18:13       ` Andrea Arcangeli
2010-12-10 12:17       ` Mel Gorman
2010-12-10 12:17         ` Mel Gorman
2010-11-03 15:28 ` [PATCH 45 of 66] remove PG_buddy Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 16:08   ` Mel Gorman
2010-11-18 16:08     ` Mel Gorman
2010-12-09 18:15     ` Andrea Arcangeli
2010-12-09 18:15       ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 46 of 66] add x86 32bit support Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 47 of 66] mincore transparent hugepage support Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 48 of 66] add pmd_modify Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 49 of 66] mprotect: pass vma down to page table walkers Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 50 of 66] mprotect: transparent huge page support Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 51 of 66] set recommended min free kbytes Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 16:16   ` Mel Gorman
2010-11-18 16:16     ` Mel Gorman
2010-12-09 18:47     ` Andrea Arcangeli
2010-12-09 18:47       ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 52 of 66] enable direct defrag Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 16:17   ` Mel Gorman
2010-11-18 16:17     ` Mel Gorman
2010-12-09 18:57     ` Andrea Arcangeli
2010-12-09 18:57       ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 53 of 66] add numa awareness to hugepage allocations Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-29  5:38   ` Daisuke Nishimura
2010-11-29  5:38     ` Daisuke Nishimura
2010-11-29 16:11     ` Andrea Arcangeli
2010-11-29 16:11       ` Andrea Arcangeli
2010-11-30  0:38       ` Daisuke Nishimura
2010-11-30  0:38         ` Daisuke Nishimura
2010-11-30 19:01         ` Andrea Arcangeli
2010-11-30 19:01           ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 54 of 66] transparent hugepage config choice Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 55 of 66] select CONFIG_COMPACTION if TRANSPARENT_HUGEPAGE enabled Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-09  6:20   ` KOSAKI Motohiro
2010-11-09  6:20     ` KOSAKI Motohiro
2010-11-09 21:11     ` Andrea Arcangeli
2010-11-09 21:11       ` Andrea Arcangeli
2010-11-14  5:07       ` KOSAKI Motohiro
2010-11-14  5:07         ` KOSAKI Motohiro
2010-11-15 15:13         ` Andrea Arcangeli
2010-11-15 15:13           ` Andrea Arcangeli
2010-11-18 16:22       ` Mel Gorman
2010-11-18 16:22         ` Mel Gorman
2010-12-09 19:04         ` Andrea Arcangeli
2010-12-09 19:04           ` Andrea Arcangeli
2010-12-14  9:45           ` Mel Gorman
2010-12-14  9:45             ` Mel Gorman
2010-12-14 16:06             ` Andrea Arcangeli
2010-12-14 16:06               ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 56 of 66] transhuge isolate_migratepages() Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 16:25   ` Mel Gorman
2010-11-18 16:25     ` Mel Gorman
2010-11-03 15:28 ` [PATCH 57 of 66] avoid breaking huge pmd invariants in case of vma_adjust failures Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 58 of 66] don't allow transparent hugepage support without PSE Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 59 of 66] mmu_notifier_test_young Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 60 of 66] freeze khugepaged and ksmd Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 61 of 66] use compaction for GFP_ATOMIC order > 0 Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-09 10:27   ` KOSAKI Motohiro
2010-11-09 10:27     ` KOSAKI Motohiro
2010-11-09 21:49     ` Andrea Arcangeli
2010-11-09 21:49       ` Andrea Arcangeli
2010-11-18 16:31   ` Mel Gorman
2010-11-18 16:31     ` Mel Gorman
2010-12-09 19:10     ` Andrea Arcangeli
2010-12-09 19:10       ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 62 of 66] disable transparent hugepages by default on small systems Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 16:34   ` Mel Gorman
2010-11-18 16:34     ` Mel Gorman
2010-11-03 15:28 ` [PATCH 63 of 66] fix anon memory statistics with transparent hugepages Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 64 of 66] scale nr_rotated to balance memory pressure Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-09  6:16   ` KOSAKI Motohiro
2010-11-09  6:16     ` KOSAKI Motohiro
2010-11-18 19:15     ` Andrea Arcangeli
2010-11-18 19:15       ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 65 of 66] transparent hugepage sysfs meminfo Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-03 15:28 ` [PATCH 66 of 66] add debug checks for mapcount related invariants Andrea Arcangeli
2010-11-03 15:28   ` Andrea Arcangeli
2010-11-18 16:39 ` [PATCH 00 of 66] Transparent Hugepage Support #32 Mel Gorman
2010-11-18 16:39   ` Mel Gorman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101126114028.GM26037@csn.ul.ie \
    --to=mel@csn.ul.ie \
    --cc=aarcange@redhat.com \
    --cc=agl@us.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=avi@redhat.com \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=benh@kernel.crashing.org \
    --cc=bp@alien8.de \
    --cc=bpicco@redhat.com \
    --cc=chris.mason@oracle.com \
    --cc=chrisw@sous-sol.org \
    --cc=cl@linux-foundation.org \
    --cc=dave@linux.vnet.ibm.com \
    --cc=hannes@cmpxchg.org \
    --cc=hugh.dickins@tiscali.co.uk \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@elte.hu \
    --cc=mst@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=nishimura@mxp.nes.nec.co.jp \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=torvalds@linux-foundation.org \
    --cc=travis@sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.