* Badness at arch/powerpc/mm/pgtable.c:286 @ 2009-12-08 17:14 kordex - 2009-12-09 7:08 ` Benjamin Herrenschmidt 0 siblings, 1 reply; 3+ messages in thread From: kordex - @ 2009-12-08 17:14 UTC (permalink / raw) To: linux-kernel, benh Hello, I turned some debuging options in order to trace rcutree problems but after turning debugging on it began just to loop on this: http://xnet.fi/opt/pics/pgtable_badness.jpg 1.5M pgtable_badness.jpg I am sorry that I could not produce full dmesg. Kernel config: http://xnet.fi/opt/apps/lkml-2.6.32-vanilla.debug.config.txt --Mikko Kortelainen ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Badness at arch/powerpc/mm/pgtable.c:286 2009-12-08 17:14 Badness at arch/powerpc/mm/pgtable.c:286 kordex - @ 2009-12-09 7:08 ` Benjamin Herrenschmidt [not found] ` <8b8dd87a0912100320q7d4ec39btd450a571be291e2b@mail.gmail.com> 0 siblings, 1 reply; 3+ messages in thread From: Benjamin Herrenschmidt @ 2009-12-09 7:08 UTC (permalink / raw) To: kordex -; +Cc: linux-kernel, linuxppc-dev On Tue, 2009-12-08 at 19:14 +0200, kordex - wrote: > Hello, > > I turned some debuging options in order to trace rcutree problems but > after turning debugging on it began just to loop on this: > > http://xnet.fi/opt/pics/pgtable_badness.jpg > 1.5M pgtable_badness.jpg > > I am sorry that I could not produce full dmesg. > > Kernel config: http://xnet.fi/opt/apps/lkml-2.6.32-vanilla.debug.config.txt Thanks for your report. Does that patch fixes it ? powerpc/mm: Fix a WARN_ON() with CONFIG_DEBUG_PAGEALLOC and CONFIG_DEBUG_VM Set need to call __set_pte_at() and not set_pte_at() from __change_page_attr() since the later will perform checks with CONFIG_DEBUG_VM that aren't suitable to the way we override an existing PTE. (More specifically, it doesn't let you write over a present PTE). Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> --- Index: linux-work/arch/powerpc/mm/pgtable_32.c =================================================================== --- linux-work.orig/arch/powerpc/mm/pgtable_32.c 2009-12-09 18:06:14.000000000 +1100 +++ linux-work/arch/powerpc/mm/pgtable_32.c 2009-12-09 18:06:16.000000000 +1100 @@ -356,7 +356,7 @@ static int __change_page_attr(struct pag return 0; if (!get_pteptr(&init_mm, address, &kpte, &kpmd)) return -EINVAL; - set_pte_at(&init_mm, address, kpte, mk_pte(page, prot)); + __set_pte_at(&init_mm, address, kpte, mk_pte(page, prot)); wmb(); #ifdef CONFIG_PPC_STD_MMU flush_hash_pages(0, address, pmd_val(*kpmd), 1); ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <8b8dd87a0912100320q7d4ec39btd450a571be291e2b@mail.gmail.com>]
[parent not found: <1260474540.16132.166.camel@pasglop>]
* Re: Badness at arch/powerpc/mm/pgtable.c:286 [not found] ` <1260474540.16132.166.camel@pasglop> @ 2009-12-13 11:02 ` kordex - 0 siblings, 0 replies; 3+ messages in thread From: kordex - @ 2009-12-13 11:02 UTC (permalink / raw) To: Benjamin Herrenschmidt, linux-kernel Hey, Thank you it fixed the problem. --Mikko Kortelainen 2009/12/10 Benjamin Herrenschmidt <benh@kernel.crashing.org>: > On Thu, 2009-12-10 at 13:20 +0200, kordex - wrote: >> arch/powerpc/mm/pgtable_32.c:362: error: too few arguments to function >> ‘__set_pte_at’ > > Right, you want to add an argument and set it to 0 : > > - set_pte_at(&init_mm, address, kpte, mk_pte(page, prot)); > + __set_pte_at(&init_mm, address, kpte, mk_pte(page, prot), 0); > > That should do it. Please let me know if that works. > > Cheers, > Ben. > >> 2009/12/9 Benjamin Herrenschmidt <benh@kernel.crashing.org>: >> > On Tue, 2009-12-08 at 19:14 +0200, kordex - wrote: >> >> Hello, >> >> >> >> I turned some debuging options in order to trace rcutree problems but >> >> after turning debugging on it began just to loop on this: >> >> >> >> http://xnet.fi/opt/pics/pgtable_badness.jpg >> >> 1.5M pgtable_badness.jpg >> >> >> >> I am sorry that I could not produce full dmesg. >> >> >> >> Kernel config: http://xnet.fi/opt/apps/lkml-2.6.32-vanilla.debug.config.txt >> > >> > Thanks for your report. >> > >> > Does that patch fixes it ? >> > >> > powerpc/mm: Fix a WARN_ON() with CONFIG_DEBUG_PAGEALLOC and CONFIG_DEBUG_VM >> > >> > Set need to call __set_pte_at() and not set_pte_at() from __change_page_attr() >> > since the later will perform checks with CONFIG_DEBUG_VM that aren't suitable >> > to the way we override an existing PTE. (More specifically, it doesn't let >> > you write over a present PTE). >> > >> > Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> >> > --- >> > >> > Index: linux-work/arch/powerpc/mm/pgtable_32.c >> > =================================================================== >> > --- linux-work.orig/arch/powerpc/mm/pgtable_32.c 2009-12-09 18:06:14.000000000 +1100 >> > +++ linux-work/arch/powerpc/mm/pgtable_32.c 2009-12-09 18:06:16.000000000 +1100 >> > @@ -356,7 +356,7 @@ static int __change_page_attr(struct pag >> > return 0; >> > if (!get_pteptr(&init_mm, address, &kpte, &kpmd)) >> > return -EINVAL; >> > - set_pte_at(&init_mm, address, kpte, mk_pte(page, prot)); >> > + __set_pte_at(&init_mm, address, kpte, mk_pte(page, prot)); >> > wmb(); >> > #ifdef CONFIG_PPC_STD_MMU >> > flush_hash_pages(0, address, pmd_val(*kpmd), 1); >> > >> > >> > > > > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-12-13 11:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-08 17:14 Badness at arch/powerpc/mm/pgtable.c:286 kordex -
2009-12-09 7:08 ` Benjamin Herrenschmidt
[not found] ` <8b8dd87a0912100320q7d4ec39btd450a571be291e2b@mail.gmail.com>
[not found] ` <1260474540.16132.166.camel@pasglop>
2009-12-13 11:02 ` kordex -
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox