From: "Bob Picco" <bob.picco@hp.com>
To: Mel Gorman <mel@skynet.ie>
Cc: davej@codemonkey.org.uk, "Luck, Tony" <tony.luck@intel.com>,
ak@suse.de, Bob Picco <bob.picco@hp.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 0/6] [RFC] Sizing zones and holes in an architecture independent manner
Date: Tue, 11 Apr 2006 21:38:24 -0400 [thread overview]
Message-ID: <20060412013824.GF23742@localhost> (raw)
In-Reply-To: <Pine.LNX.4.64.0604120053080.10268@skynet.skynet.ie>
Mel Gorman wrote: [Tue Apr 11 2006, 08:02:10PM EDT]
> On Tue, 11 Apr 2006, Bob Picco wrote:
>
> >luck wrote: [Tue Apr 11 2006, 06:20:29PM EDT]
> >>On Tue, Apr 11, 2006 at 11:39:46AM +0100, Mel Gorman wrote:
> >>
> >>>The patches have only been *compile tested* for ia64 with a flatmem
> >>>configuration. At attempt was made to boot test on an ancient RS/6000
> >>>but the vanilla kernel does not boot so I have to investigate there.
> >>
> >>The good news: Compilation is clean on the ia64 config variants that
> >>I usually build (all 10 of them).
> >>
> >>The bad (or at least consistent) news: It doesn't boot on an Intel
> >>Tiger either (oops at kmem_cache_alloc+0x41).
> >>
> >>-Tony
> >I had a reply queued to report the same failure with
> >DISCONTIG+NUMA+VIRTUAL_MEM_MAP. This was 2 CPU HP rx2600. I'll take a
> >closer
> >look at the code tomorrow.
> >
>
> hmm, ok, so discontig.c is in use which narrows things down. When
> build_node_maps() is called, I assumed that the start and end pfn passed
> in was for a valid page range. Was this a valid assumption? When I re-read
The addresses are a valid physical range. The caution should be that
filter_rsvd_memory converts the addresses from identity mapped to
physical. efi_memmap_walk calls back to function with identity mapped
addresses. What you've done seems okay.
BTW - I like want you are attempting to achieve.
> the comment, it implies that memory holes could be within this range which
> would cause boot failures. If that is the case, the correct thing to do
> was to call add_active_range() in count_node_pages() instead of
> build_node_maps().
Yes that helps because of granules and it boots. The patch below is applied
on top of your original post. But..
Index: linux-2.6.17-rc1/arch/ia64/mm/discontig.c
===================================================================
--- linux-2.6.17-rc1.orig/arch/ia64/mm/discontig.c 2006-04-11 20:36:15.000000000 -0400
+++ linux-2.6.17-rc1/arch/ia64/mm/discontig.c 2006-04-11 20:52:59.000000000 -0400
@@ -88,9 +88,6 @@ static int __init build_node_maps(unsign
min_low_pfn = min(min_low_pfn, bdp->node_boot_start>>PAGE_SHIFT);
max_low_pfn = max(max_low_pfn, bdp->node_low_pfn);
- /* Add a known active range */
- add_active_range(node, start, end);
-
return 0;
}
@@ -651,6 +648,8 @@ static __init int count_node_pages(unsig
mem_data[node].min_pfn = min(mem_data[node].min_pfn,
start >> PAGE_SHIFT);
+ add_active_range(node, start, end);
+
return 0;
}
Page free/avail accounting is off and I'm done for tonight. I believe it's how
you treat holes but haven't looked closely yet.
Let me wrap my head around this code again. It's been some time.
>
bob
WARNING: multiple messages have this Message-ID (diff)
From: "Bob Picco" <bob.picco@hp.com>
To: Mel Gorman <mel@skynet.ie>
Cc: Bob Picco <bob.picco@hp.com>, "Luck, Tony" <tony.luck@intel.com>,
linuxppc-dev@ozlabs.org, davej@codemonkey.org.uk,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
ak@suse.de
Subject: Re: [PATCH 0/6] [RFC] Sizing zones and holes in an architecture independent manner
Date: Tue, 11 Apr 2006 21:38:24 -0400 [thread overview]
Message-ID: <20060412013824.GF23742@localhost> (raw)
In-Reply-To: <Pine.LNX.4.64.0604120053080.10268@skynet.skynet.ie>
Mel Gorman wrote: [Tue Apr 11 2006, 08:02:10PM EDT]
> On Tue, 11 Apr 2006, Bob Picco wrote:
>
> >luck wrote: [Tue Apr 11 2006, 06:20:29PM EDT]
> >>On Tue, Apr 11, 2006 at 11:39:46AM +0100, Mel Gorman wrote:
> >>
> >>>The patches have only been *compile tested* for ia64 with a flatmem
> >>>configuration. At attempt was made to boot test on an ancient RS/6000
> >>>but the vanilla kernel does not boot so I have to investigate there.
> >>
> >>The good news: Compilation is clean on the ia64 config variants that
> >>I usually build (all 10 of them).
> >>
> >>The bad (or at least consistent) news: It doesn't boot on an Intel
> >>Tiger either (oops at kmem_cache_alloc+0x41).
> >>
> >>-Tony
> >I had a reply queued to report the same failure with
> >DISCONTIG+NUMA+VIRTUAL_MEM_MAP. This was 2 CPU HP rx2600. I'll take a
> >closer
> >look at the code tomorrow.
> >
>
> hmm, ok, so discontig.c is in use which narrows things down. When
> build_node_maps() is called, I assumed that the start and end pfn passed
> in was for a valid page range. Was this a valid assumption? When I re-read
The addresses are a valid physical range. The caution should be that
filter_rsvd_memory converts the addresses from identity mapped to
physical. efi_memmap_walk calls back to function with identity mapped
addresses. What you've done seems okay.
BTW - I like want you are attempting to achieve.
> the comment, it implies that memory holes could be within this range which
> would cause boot failures. If that is the case, the correct thing to do
> was to call add_active_range() in count_node_pages() instead of
> build_node_maps().
Yes that helps because of granules and it boots. The patch below is applied
on top of your original post. But..
Index: linux-2.6.17-rc1/arch/ia64/mm/discontig.c
===================================================================
--- linux-2.6.17-rc1.orig/arch/ia64/mm/discontig.c 2006-04-11 20:36:15.000000000 -0400
+++ linux-2.6.17-rc1/arch/ia64/mm/discontig.c 2006-04-11 20:52:59.000000000 -0400
@@ -88,9 +88,6 @@ static int __init build_node_maps(unsign
min_low_pfn = min(min_low_pfn, bdp->node_boot_start>>PAGE_SHIFT);
max_low_pfn = max(max_low_pfn, bdp->node_low_pfn);
- /* Add a known active range */
- add_active_range(node, start, end);
-
return 0;
}
@@ -651,6 +648,8 @@ static __init int count_node_pages(unsig
mem_data[node].min_pfn = min(mem_data[node].min_pfn,
start >> PAGE_SHIFT);
+ add_active_range(node, start, end);
+
return 0;
}
Page free/avail accounting is off and I'm done for tonight. I believe it's how
you treat holes but haven't looked closely yet.
Let me wrap my head around this code again. It's been some time.
>
bob
next prev parent reply other threads:[~2006-04-12 1:38 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-11 10:39 [PATCH 0/6] [RFC] Sizing zones and holes in an architecture independent manner Mel Gorman
2006-04-11 10:40 ` [PATCH 1/6] Introduce mechanism for registering active regions of memory Mel Gorman
2006-04-11 10:40 ` [PATCH 2/6] Have Power use add_active_range() and free_area_init_nodes() Mel Gorman
2006-04-11 10:40 ` [PATCH 3/6] Have x86 use add_active_range() and free_area_init_nodes Mel Gorman
2006-04-11 10:41 ` [PATCH 4/6] Have x86_64 " Mel Gorman
2006-04-11 10:41 ` [PATCH 5/6] Have ia64 " Mel Gorman
2006-04-11 10:41 ` [PATCH 6/6] Break out memory initialisation code from page_alloc.c to mem_init.c Mel Gorman
2006-04-11 11:07 ` Nick Piggin
2006-04-11 11:07 ` Nick Piggin
2006-04-11 16:59 ` Mel Gorman
2006-04-11 16:59 ` Mel Gorman
2006-04-11 22:20 ` [PATCH 0/6] [RFC] Sizing zones and holes in an architecture independent manner Luck, Tony
2006-04-11 22:20 ` Luck, Tony
2006-04-11 23:23 ` Mel Gorman
2006-04-11 23:23 ` Mel Gorman
2006-04-12 0:05 ` Luck, Tony
2006-04-12 0:05 ` Luck, Tony
2006-04-12 10:50 ` Mel Gorman
2006-04-12 10:50 ` Mel Gorman
2006-04-12 15:46 ` Luck, Tony
2006-04-12 15:46 ` Luck, Tony
2006-04-12 16:00 ` Mel Gorman
2006-04-12 16:00 ` Mel Gorman
2006-04-12 16:36 ` Luck, Tony
2006-04-12 16:36 ` Luck, Tony
2006-04-12 17:50 ` Mel Gorman
2006-04-12 17:50 ` Mel Gorman
2006-04-12 17:07 ` Luck, Tony
2006-04-12 17:07 ` Luck, Tony
2006-04-12 17:18 ` Bob Picco
2006-04-12 17:18 ` Bob Picco
2006-04-12 17:32 ` Mel Gorman
2006-04-12 17:32 ` Mel Gorman
2006-04-12 15:54 ` Luck, Tony
2006-04-12 15:54 ` Luck, Tony
2006-04-11 23:29 ` Bob Picco
2006-04-11 23:29 ` Bob Picco
2006-04-12 0:02 ` Mel Gorman
2006-04-12 0:02 ` Mel Gorman
2006-04-12 1:38 ` Bob Picco [this message]
2006-04-12 1:38 ` Bob Picco
2006-04-12 10:59 ` Mel Gorman
2006-04-12 10:59 ` 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=20060412013824.GF23742@localhost \
--to=bob.picco@hp.com \
--cc=ak@suse.de \
--cc=davej@codemonkey.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=mel@skynet.ie \
--cc=tony.luck@intel.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.