linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 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).