Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-25 Thread Yinghai Lu
On Thu, Jul 25, 2013 at 6:42 AM, Robin Holt wrote: > On Thu, Jul 25, 2013 at 05:50:57AM -0700, Yinghai Lu wrote: >> On Wed, Jul 24, 2013 at 7:25 PM, Robin Holt wrote: >> >> >> >> How about holes that is not in memblock.reserved? >> >> >> >> before this patch: >> >> free_area_init_node/free_area_i

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-25 Thread Robin Holt
On Thu, Jul 25, 2013 at 05:50:57AM -0700, Yinghai Lu wrote: > On Wed, Jul 24, 2013 at 7:25 PM, Robin Holt wrote: > >> > >> How about holes that is not in memblock.reserved? > >> > >> before this patch: > >> free_area_init_node/free_area_init_core/memmap_init_zone > >> will mark all page in node ra

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-25 Thread Yinghai Lu
On Wed, Jul 24, 2013 at 7:25 PM, Robin Holt wrote: >> >> How about holes that is not in memblock.reserved? >> >> before this patch: >> free_area_init_node/free_area_init_core/memmap_init_zone >> will mark all page in node range to Reserved in struct page, at first. >> >> but those holes is not map

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-24 Thread Robin Holt
On Fri, Jul 12, 2013 at 09:19:12PM -0700, Yinghai Lu wrote: > On Thu, Jul 11, 2013 at 7:03 PM, Robin Holt wrote: > > During boot of large memory machines, a significant portion of boot > > is spent initializing the struct page array. The vast majority of > > those pages are not referenced during

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-23 Thread Robin Holt
On Tue, Jul 23, 2013 at 06:41:50AM -0500, Robin Holt wrote: > On Tue, Jul 23, 2013 at 06:15:49AM -0500, Robin Holt wrote: > > I think the other critical path which is affected is in expand(). > > There, we just call ensure_page_is_initialized() blindly which does > > the check against the other pag

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-23 Thread Robin Holt
On Tue, Jul 23, 2013 at 06:15:49AM -0500, Robin Holt wrote: > I think the other critical path which is affected is in expand(). > There, we just call ensure_page_is_initialized() blindly which does > the check against the other page. The below is a nearly zero addition. > Sorry for the confusion.

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-23 Thread Robin Holt
I think the other critical path which is affected is in expand(). There, we just call ensure_page_is_initialized() blindly which does the check against the other page. The below is a nearly zero addition. Sorry for the confusion. My morning coffee has not kicked in yet. Robin On Tue, Jul 23, 20

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-23 Thread Robin Holt
On Tue, Jul 23, 2013 at 10:32:11AM +0200, Ingo Molnar wrote: > > * H. Peter Anvin wrote: > > > On 07/15/2013 11:26 AM, Robin Holt wrote: > > > > > Is there a fairly cheap way to determine definitively that the struct > > > page is not initialized? > > > > By definition I would assume no. The

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-23 Thread Ingo Molnar
* H. Peter Anvin wrote: > On 07/15/2013 11:26 AM, Robin Holt wrote: > > > Is there a fairly cheap way to determine definitively that the struct > > page is not initialized? > > By definition I would assume no. The only way I can think of would be > to unmap the memory associated with the str

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-16 Thread Robin Holt
On Mon, Jul 15, 2013 at 02:30:37PM -0700, Andrew Morton wrote: > On Thu, 11 Jul 2013 21:03:55 -0500 Robin Holt wrote: > > > During boot of large memory machines, a significant portion of boot > > is spent initializing the struct page array. The vast majority of > > those pages are not referenced

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-16 Thread Robin Holt
On Fri, Jul 12, 2013 at 09:19:12PM -0700, Yinghai Lu wrote: > On Thu, Jul 11, 2013 at 7:03 PM, Robin Holt wrote: > > During boot of large memory machines, a significant portion of boot > > is spent initializing the struct page array. The vast majority of > > those pages are not referenced during

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-15 Thread Andrew Morton
On Thu, 11 Jul 2013 21:03:55 -0500 Robin Holt wrote: > During boot of large memory machines, a significant portion of boot > is spent initializing the struct page array. The vast majority of > those pages are not referenced during boot. > > Change this over to only initializing the pages when t

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-15 Thread H. Peter Anvin
On 07/15/2013 11:26 AM, Robin Holt wrote: > Is there a fairly cheap way to determine definitively that the struct > page is not initialized? By definition I would assume no. The only way I can think of would be to unmap the memory associated with the struct page in the TLB and initialize the stru

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-15 Thread Robin Holt
On Mon, Jul 15, 2013 at 10:54:38AM -0700, H. Peter Anvin wrote: > On 07/15/2013 10:45 AM, Nathan Zimmer wrote: > > > > I hadn't actually been very happy with having a PG_uninitialized2mib flag. > > It implies if we want to jump to 1Gb pages we would need a second flag, > > PG_uninitialized1gb, for

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-15 Thread H. Peter Anvin
On 07/15/2013 10:45 AM, Nathan Zimmer wrote: > > I hadn't actually been very happy with having a PG_uninitialized2mib flag. > It implies if we want to jump to 1Gb pages we would need a second flag, > PG_uninitialized1gb, for that. I was thinking of changing it to > PG_uninitialized and setting pa

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-15 Thread Nathan Zimmer
On Fri, Jul 12, 2013 at 09:19:12PM -0700, Yinghai Lu wrote: > On Thu, Jul 11, 2013 at 7:03 PM, Robin Holt wrote: > > + > > page = pfn_to_page(pfn); > > __init_single_page(page, zone, nid, 1); > > + > > + if (pfns > 1) > > + SetPag

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-15 Thread Nathan Zimmer
On 07/13/2013 12:31 AM, Yinghai Lu wrote: On Fri, Jul 12, 2013 at 9:39 PM, H. Peter Anvin wrote: On 07/12/2013 09:19 PM, Yinghai Lu wrote: PG_reserved, + PG_uninitialized2mib, /* Is this the right spot? ntz - Yes - rmh */ PG_private, /* If pagecache, has f

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-12 Thread H. Peter Anvin
On 07/12/2013 10:31 PM, Yinghai Lu wrote: > On Fri, Jul 12, 2013 at 9:39 PM, H. Peter Anvin wrote: >> On 07/12/2013 09:19 PM, Yinghai Lu wrote: PG_reserved, + PG_uninitialized2mib, /* Is this the right spot? ntz - Yes - rmh */ PG_private, /*

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-12 Thread Yinghai Lu
On Fri, Jul 12, 2013 at 9:39 PM, H. Peter Anvin wrote: > On 07/12/2013 09:19 PM, Yinghai Lu wrote: >>> PG_reserved, >>> + PG_uninitialized2mib, /* Is this the right spot? ntz - Yes - rmh >>> */ >>> PG_private, /* If pagecache, has fs-private data */ > > The com

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-12 Thread H. Peter Anvin
On 07/12/2013 09:19 PM, Yinghai Lu wrote: >> PG_reserved, >> + PG_uninitialized2mib, /* Is this the right spot? ntz - Yes - rmh */ >> PG_private, /* If pagecache, has fs-private data */ The comment here is WTF... -hpa -- To unsubscribe from this list:

Re: [RFC 4/4] Sparse initialization of struct page array.

2013-07-12 Thread Yinghai Lu
On Thu, Jul 11, 2013 at 7:03 PM, Robin Holt wrote: > During boot of large memory machines, a significant portion of boot > is spent initializing the struct page array. The vast majority of > those pages are not referenced during boot. > > Change this over to only initializing the pages when they