* 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
* 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;
as well as URLs for NNTP newsgroup(s).