diff for duplicates of <200612140037.53477.arnd@arndb.de> diff --git a/a/1.txt b/N1/1.txt index ca95ce0..00590d5 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,7 +1,7 @@ On Thursday 14 December 2006 00:17, Mike Kravetz wrote: -> Thanks for the debug work! =A0Just curious if you really need -> CONFIG_NODES_SPAN_OTHER_NODES defined for your platform? =A0Can you get -> those types of memory layouts? =A0If not, an easy/immediate fix for you +> Thanks for the debug work! Just curious if you really need +> CONFIG_NODES_SPAN_OTHER_NODES defined for your platform? Can you get +> those types of memory layouts? If not, an easy/immediate fix for you > might be to simply turn off the option. We want to be able to run the same kernel as pseries, e.g. on @@ -12,24 +12,20 @@ the problem for us. > > --- linux-2.6.orig/mm/page_alloc.c > > +++ linux-2.6/mm/page_alloc.c > > @@ -1962,7 +1962,8 @@ void __meminit memmap_init_zone(unsigned -> > =A0=A0=A0=A0=A0=A0for (pfn =3D start_pfn; pfn < end_pfn; pfn++) { -> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!early_pfn_valid(pfn)) -> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0conti= -nue; -> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!early_pfn_in_nid(pfn, nid)) -> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!slab_is_available() && -> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0 =A0!early_pfn_in_nid(pfn, = -nid)) -> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0conti= -nue; -> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0page =3D pfn_to_page(pfn); -> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0set_page_links(page, zone, ni= -d, pfn); ->=20 +> > for (pfn = start_pfn; pfn < end_pfn; pfn++) { +> > if (!early_pfn_valid(pfn)) +> > continue; +> > - if (!early_pfn_in_nid(pfn, nid)) +> > + if (!slab_is_available() && +> > + !early_pfn_in_nid(pfn, nid)) +> > continue; +> > page = pfn_to_page(pfn); +> > set_page_links(page, zone, nid, pfn); +> > I know you don't recommend this as a fix, but it has the interesting -> quality of doing exactly what we want for powerpc. =A0When +> quality of doing exactly what we want for powerpc. When > slab_is_available() we are performing a 'memory add' operation -> and there is no need to do the 'pfn_in_nid' check. =A0We know that +> and there is no need to do the 'pfn_in_nid' check. We know that > the range of added pages will all be on the same (passed) nid. Right, that was at least my intention, though I wasn't sure diff --git a/a/content_digest b/N1/content_digest index 286e655..33bd44c 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -4,20 +4,23 @@ "Subject\0Re: Bug: early_pfn_in_nid() called when not early\0" "Date\0Thu, 14 Dec 2006 00:37:51 +0100\0" "To\0Mike Kravetz <kravetz@us.ibm.com>\0" - "Cc\0Andrew Morton <akpm@osdl.org>" + "Cc\0cbe-oss-dev@ozlabs.org" + linuxppc-dev@ozlabs.org linux-mm@kvack.org - linux-kernel@vger.kernel.org + Benjamin Herrenschmidt <benh@kernel.crashing.org> + Andy Whitcroft <apw@shadowen.org> + Michael Kravetz <mkravetz@us.ibm.com> hch@infradead.org - linuxppc-dev@ozlabs.org + Jeremy Kerr <jk@ozlabs.org> + linux-kernel@vger.kernel.org Paul Mackerras <paulus@samba.org> - Michael Kravetz <mkravetz@us.ibm.com> - " cbe-oss-dev@ozlabs.org\0" + " Andrew Morton <akpm@osdl.org>\0" "\00:1\0" "b\0" "On Thursday 14 December 2006 00:17, Mike Kravetz wrote:\n" - "> Thanks for the debug work! =A0Just curious if you really need\n" - "> CONFIG_NODES_SPAN_OTHER_NODES defined for your platform? =A0Can you get\n" - "> those types of memory layouts? =A0If not, an easy/immediate fix for you\n" + "> Thanks for the debug work! \302\240Just curious if you really need\n" + "> CONFIG_NODES_SPAN_OTHER_NODES defined for your platform? \302\240Can you get\n" + "> those types of memory layouts? \302\240If not, an easy/immediate fix for you\n" "> might be to simply turn off the option.\n" "\n" "We want to be able to run the same kernel as pseries, e.g. on\n" @@ -28,24 +31,20 @@ "> > --- linux-2.6.orig/mm/page_alloc.c\n" "> > +++ linux-2.6/mm/page_alloc.c\n" "> > @@ -1962,7 +1962,8 @@ void __meminit memmap_init_zone(unsigned\n" - "> > =A0=A0=A0=A0=A0=A0for (pfn =3D start_pfn; pfn < end_pfn; pfn++) {\n" - "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!early_pfn_valid(pfn))\n" - "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0conti=\n" - "nue;\n" - "> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!early_pfn_in_nid(pfn, nid))\n" - "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!slab_is_available() &&\n" - "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0 =A0!early_pfn_in_nid(pfn, =\n" - "nid))\n" - "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0conti=\n" - "nue;\n" - "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0page =3D pfn_to_page(pfn);\n" - "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0set_page_links(page, zone, ni=\n" - "d, pfn);\n" - ">=20\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240for (pfn = start_pfn; pfn < end_pfn; pfn++) {\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!early_pfn_valid(pfn))\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240continue;\n" + "> > -\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!early_pfn_in_nid(pfn, nid))\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (!slab_is_available() &&\n" + "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \302\240 \302\240!early_pfn_in_nid(pfn, nid))\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240continue;\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240page = pfn_to_page(pfn);\n" + "> > \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240set_page_links(page, zone, nid, pfn);\n" + "> \n" "> I know you don't recommend this as a fix, but it has the interesting\n" - "> quality of doing exactly what we want for powerpc. =A0When\n" + "> quality of doing exactly what we want for powerpc. \302\240When\n" "> slab_is_available() we are performing a 'memory add' operation\n" - "> and there is no need to do the 'pfn_in_nid' check. =A0We know that\n" + "> and there is no need to do the 'pfn_in_nid' check. \302\240We know that\n" "> the range of added pages will all be on the same (passed) nid.\n" "\n" "Right, that was at least my intention, though I wasn't sure\n" @@ -53,4 +52,4 @@ "\n" "\tArnd <><" -dd0b723a035110edfe41d2dfded2081768cf8951531fda3731d8b18ac89aa7d7 +b07f5d35ed4f2733a0cace01b90581899e0e3ca4ffef16987fa24f70b00baa19
diff --git a/a/1.txt b/N2/1.txt index ca95ce0..f3d579e 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -1,7 +1,7 @@ On Thursday 14 December 2006 00:17, Mike Kravetz wrote: -> Thanks for the debug work! =A0Just curious if you really need -> CONFIG_NODES_SPAN_OTHER_NODES defined for your platform? =A0Can you get -> those types of memory layouts? =A0If not, an easy/immediate fix for you +> Thanks for the debug work! Just curious if you really need +> CONFIG_NODES_SPAN_OTHER_NODES defined for your platform? Can you get +> those types of memory layouts? If not, an easy/immediate fix for you > might be to simply turn off the option. We want to be able to run the same kernel as pseries, e.g. on @@ -12,27 +12,29 @@ the problem for us. > > --- linux-2.6.orig/mm/page_alloc.c > > +++ linux-2.6/mm/page_alloc.c > > @@ -1962,7 +1962,8 @@ void __meminit memmap_init_zone(unsigned -> > =A0=A0=A0=A0=A0=A0for (pfn =3D start_pfn; pfn < end_pfn; pfn++) { -> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!early_pfn_valid(pfn)) -> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0conti= -nue; -> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!early_pfn_in_nid(pfn, nid)) -> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!slab_is_available() && -> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0 =A0!early_pfn_in_nid(pfn, = -nid)) -> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0conti= -nue; -> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0page =3D pfn_to_page(pfn); -> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0set_page_links(page, zone, ni= -d, pfn); ->=20 +> > for (pfn = start_pfn; pfn < end_pfn; pfn++) { +> > if (!early_pfn_valid(pfn)) +> > continue; +> > - if (!early_pfn_in_nid(pfn, nid)) +> > + if (!slab_is_available() && +> > + !early_pfn_in_nid(pfn, nid)) +> > continue; +> > page = pfn_to_page(pfn); +> > set_page_links(page, zone, nid, pfn); +> > I know you don't recommend this as a fix, but it has the interesting -> quality of doing exactly what we want for powerpc. =A0When +> quality of doing exactly what we want for powerpc. When > slab_is_available() we are performing a 'memory add' operation -> and there is no need to do the 'pfn_in_nid' check. =A0We know that +> and there is no need to do the 'pfn_in_nid' check. We know that > the range of added pages will all be on the same (passed) nid. Right, that was at least my intention, though I wasn't sure if pseries can live without the check. Arnd <>< + +-- +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> diff --git a/a/content_digest b/N2/content_digest index 286e655..b0dcec4 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -4,20 +4,23 @@ "Subject\0Re: Bug: early_pfn_in_nid() called when not early\0" "Date\0Thu, 14 Dec 2006 00:37:51 +0100\0" "To\0Mike Kravetz <kravetz@us.ibm.com>\0" - "Cc\0Andrew Morton <akpm@osdl.org>" + "Cc\0cbe-oss-dev@ozlabs.org" + linuxppc-dev@ozlabs.org linux-mm@kvack.org - linux-kernel@vger.kernel.org + Benjamin Herrenschmidt <benh@kernel.crashing.org> + Andy Whitcroft <apw@shadowen.org> + Michael Kravetz <mkravetz@us.ibm.com> hch@infradead.org - linuxppc-dev@ozlabs.org + Jeremy Kerr <jk@ozlabs.org> + linux-kernel@vger.kernel.org Paul Mackerras <paulus@samba.org> - Michael Kravetz <mkravetz@us.ibm.com> - " cbe-oss-dev@ozlabs.org\0" + " Andrew Morton <akpm@osdl.org>\0" "\00:1\0" "b\0" "On Thursday 14 December 2006 00:17, Mike Kravetz wrote:\n" - "> Thanks for the debug work! =A0Just curious if you really need\n" - "> CONFIG_NODES_SPAN_OTHER_NODES defined for your platform? =A0Can you get\n" - "> those types of memory layouts? =A0If not, an easy/immediate fix for you\n" + "> Thanks for the debug work! Just curious if you really need\n" + "> CONFIG_NODES_SPAN_OTHER_NODES defined for your platform? Can you get\n" + "> those types of memory layouts? If not, an easy/immediate fix for you\n" "> might be to simply turn off the option.\n" "\n" "We want to be able to run the same kernel as pseries, e.g. on\n" @@ -28,29 +31,31 @@ "> > --- linux-2.6.orig/mm/page_alloc.c\n" "> > +++ linux-2.6/mm/page_alloc.c\n" "> > @@ -1962,7 +1962,8 @@ void __meminit memmap_init_zone(unsigned\n" - "> > =A0=A0=A0=A0=A0=A0for (pfn =3D start_pfn; pfn < end_pfn; pfn++) {\n" - "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!early_pfn_valid(pfn))\n" - "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0conti=\n" - "nue;\n" - "> > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!early_pfn_in_nid(pfn, nid))\n" - "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0if (!slab_is_available() &&\n" - "> > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0 =A0!early_pfn_in_nid(pfn, =\n" - "nid))\n" - "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0conti=\n" - "nue;\n" - "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0page =3D pfn_to_page(pfn);\n" - "> > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0set_page_links(page, zone, ni=\n" - "d, pfn);\n" - ">=20\n" + "> > for (pfn = start_pfn; pfn < end_pfn; pfn++) {\n" + "> > if (!early_pfn_valid(pfn))\n" + "> > continue;\n" + "> > - if (!early_pfn_in_nid(pfn, nid))\n" + "> > + if (!slab_is_available() &&\n" + "> > + !early_pfn_in_nid(pfn, nid))\n" + "> > continue;\n" + "> > page = pfn_to_page(pfn);\n" + "> > set_page_links(page, zone, nid, pfn);\n" + "> \n" "> I know you don't recommend this as a fix, but it has the interesting\n" - "> quality of doing exactly what we want for powerpc. =A0When\n" + "> quality of doing exactly what we want for powerpc. When\n" "> slab_is_available() we are performing a 'memory add' operation\n" - "> and there is no need to do the 'pfn_in_nid' check. =A0We know that\n" + "> and there is no need to do the 'pfn_in_nid' check. We know that\n" "> the range of added pages will all be on the same (passed) nid.\n" "\n" "Right, that was at least my intention, though I wasn't sure\n" "if pseries can live without the check.\n" "\n" - "\tArnd <><" + "\tArnd <><\n" + "\n" + "--\n" + "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n" + "the body to majordomo@kvack.org. For more info on Linux MM,\n" + "see: http://www.linux-mm.org/ .\n" + "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" -dd0b723a035110edfe41d2dfded2081768cf8951531fda3731d8b18ac89aa7d7 +c972006fbe16dc03a615118e5941a80cb87826d974b5a0f3eb32ae3060b0b21a
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.