* 2.6.22-rc6-mm1 bad_page events.
@ 2007-07-03 14:06 Alan Cox
2007-07-03 15:37 ` Mathieu Desnoyers
2007-07-03 15:55 ` 2.6.22-rc6-mm1 bad_page events Andrew Morton
0 siblings, 2 replies; 6+ messages in thread
From: Alan Cox @ 2007-07-03 14:06 UTC (permalink / raw)
To: akpm, linux-kernel
X86 32bit with lots of debug turned on I get this:
Freeing unused kernel memory: 156k freed
Write protecting the kernel text: 1668k
Write protecting the kernel read-only data: 719k
Bad page state in process 'swapper'
page:c10000c0 flags:0x00000400 mapping:00000000 mapcount:0 count:0
Trying to fix it up, but a reboot is needed
Backtrace:
[<c024589c>] bad_page+0x6c/0x100
[<c024648d>] free_hot_cold_page+0x5d/0x140
[<c02116c2>] global_flush_tlb+0x112/0x130
[<c020102d>] init_post+0xd/0xe0
[<c047c876>] kernel_init+0x216/0x220
[<c0214c50>] schedule_tail+0x0/0xe0
[<c047c660>] kernel_init+0x0/0x220
[<c047c660>] kernel_init+0x0/0x220
[<c0204227>] kernel_thread_helper+0x7/0x10
=======================
Hexdump:
000: 00 06 00 00 01 00 00 00 ff ff ff ff 0f 00 00 00
010: 00 00 00 00 00 00 00 00 78 00 00 c1 b8 00 00 c1
020: 00 06 00 00 01 00 00 00 ff ff ff ff a7 03 00 00
030: 00 00 00 00 00 00 00 00 98 00 00 c1 d8 00 00 c1
040: 00 04 00 00 00 00 00 00 ff ff ff ff 00 00 00 00
050: 00 00 00 00 00 00 00 00 b8 00 00 c1 f8 00 00 c1
060: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
070: 00 00 00 00 00 00 00 00 d8 00 00 c1 18 01 00 c1
080: 00 06 00 00 01 00 00 00 ff ff ff ff 9c 03 00 00
090: 00 00 00 00 00 00 00 00 f8 00 00 c1 38 01 00 c1
0a0: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
0b0: 00 00 00 00 00 00 00 00 18 01 00 c1 58 01 00 c1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.6.22-rc6-mm1 bad_page events.
2007-07-03 14:06 2.6.22-rc6-mm1 bad_page events Alan Cox
@ 2007-07-03 15:37 ` Mathieu Desnoyers
2007-07-03 16:26 ` Frederik Deweerdt
2007-07-03 15:55 ` 2.6.22-rc6-mm1 bad_page events Andrew Morton
1 sibling, 1 reply; 6+ messages in thread
From: Mathieu Desnoyers @ 2007-07-03 15:37 UTC (permalink / raw)
To: Alan Cox; +Cc: akpm, linux-kernel
Hi Alan,
I already sent a fix to Andrew and Andi for this (hrm, forget to CC
lkml on the original message):
x86_64 mm cpa cache flush fix
X86_64 and i386 cpa cache flush fix:
list_del the deferred list entries to poison their pointers.
clear the flag for every page put in the list.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Andi Kleen <ak@suse.de>
---
arch/i386/mm/pageattr.c | 3 ++-
arch/x86_64/mm/pageattr.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
Index: linux-2.6-lttng/arch/i386/mm/pageattr.c
===================================================================
--- linux-2.6-lttng.orig/arch/i386/mm/pageattr.c 2007-06-29 12:33:47.000000000 -0400
+++ linux-2.6-lttng/arch/i386/mm/pageattr.c 2007-06-29 12:35:45.000000000 -0400
@@ -245,10 +245,11 @@
spin_unlock_irq(&cpa_lock);
flush_map(&l);
list_for_each_entry_safe(pg, next, &l, lru) {
+ clear_bit(PG_arch_1, &pg->flags);
+ list_del(&pg->lru);
if (page_private(pg) != 0)
continue;
ClearPagePrivate(pg);
- clear_bit(PG_arch_1, &pg->flags);
__free_page(pg);
}
}
Index: linux-2.6-lttng/arch/x86_64/mm/pageattr.c
===================================================================
--- linux-2.6-lttng.orig/arch/x86_64/mm/pageattr.c 2007-06-29 12:33:51.000000000 -0400
+++ linux-2.6-lttng/arch/x86_64/mm/pageattr.c 2007-06-29 12:34:57.000000000 -0400
@@ -235,10 +235,11 @@
flush_map(&l);
list_for_each_entry_safe(pg, next, &l, lru) {
+ clear_bit(PG_arch_1, &pg->flags);
+ list_del(&pg->lru);
if (page_private(pg) != 0)
continue;
ClearPagePrivate(pg);
- clear_bit(PG_arch_1, &pg->flags);
__free_page(pg);
}
}
* Alan Cox (alan@lxorguk.ukuu.org.uk) wrote:
> X86 32bit with lots of debug turned on I get this:
>
>
>
> Freeing unused kernel memory: 156k freed
> Write protecting the kernel text: 1668k
> Write protecting the kernel read-only data: 719k
> Bad page state in process 'swapper'
> page:c10000c0 flags:0x00000400 mapping:00000000 mapcount:0 count:0
> Trying to fix it up, but a reboot is needed
> Backtrace:
> [<c024589c>] bad_page+0x6c/0x100
> [<c024648d>] free_hot_cold_page+0x5d/0x140
> [<c02116c2>] global_flush_tlb+0x112/0x130
> [<c020102d>] init_post+0xd/0xe0
> [<c047c876>] kernel_init+0x216/0x220
> [<c0214c50>] schedule_tail+0x0/0xe0
> [<c047c660>] kernel_init+0x0/0x220
> [<c047c660>] kernel_init+0x0/0x220
> [<c0204227>] kernel_thread_helper+0x7/0x10
> =======================
> Hexdump:
> 000: 00 06 00 00 01 00 00 00 ff ff ff ff 0f 00 00 00
> 010: 00 00 00 00 00 00 00 00 78 00 00 c1 b8 00 00 c1
> 020: 00 06 00 00 01 00 00 00 ff ff ff ff a7 03 00 00
> 030: 00 00 00 00 00 00 00 00 98 00 00 c1 d8 00 00 c1
> 040: 00 04 00 00 00 00 00 00 ff ff ff ff 00 00 00 00
> 050: 00 00 00 00 00 00 00 00 b8 00 00 c1 f8 00 00 c1
> 060: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
> 070: 00 00 00 00 00 00 00 00 d8 00 00 c1 18 01 00 c1
> 080: 00 06 00 00 01 00 00 00 ff ff ff ff 9c 03 00 00
> 090: 00 00 00 00 00 00 00 00 f8 00 00 c1 38 01 00 c1
> 0a0: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
> 0b0: 00 00 00 00 00 00 00 00 18 01 00 c1 58 01 00 c1
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
--
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.6.22-rc6-mm1 bad_page events.
2007-07-03 14:06 2.6.22-rc6-mm1 bad_page events Alan Cox
2007-07-03 15:37 ` Mathieu Desnoyers
@ 2007-07-03 15:55 ` Andrew Morton
1 sibling, 0 replies; 6+ messages in thread
From: Andrew Morton @ 2007-07-03 15:55 UTC (permalink / raw)
To: Alan Cox; +Cc: linux-kernel
On Tue, 3 Jul 2007 15:06:56 +0100 Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> X86 32bit with lots of debug turned on I get this:
>
>
>
> Freeing unused kernel memory: 156k freed
> Write protecting the kernel text: 1668k
> Write protecting the kernel read-only data: 719k
> Bad page state in process 'swapper'
> page:c10000c0 flags:0x00000400 mapping:00000000 mapcount:0 count:0
> Trying to fix it up, but a reboot is needed
> Backtrace:
> [<c024589c>] bad_page+0x6c/0x100
> [<c024648d>] free_hot_cold_page+0x5d/0x140
> [<c02116c2>] global_flush_tlb+0x112/0x130
> [<c020102d>] init_post+0xd/0xe0
> [<c047c876>] kernel_init+0x216/0x220
> [<c0214c50>] schedule_tail+0x0/0xe0
> [<c047c660>] kernel_init+0x0/0x220
> [<c047c660>] kernel_init+0x0/0x220
> [<c0204227>] kernel_thread_helper+0x7/0x10
> =======================
> Hexdump:
> 000: 00 06 00 00 01 00 00 00 ff ff ff ff 0f 00 00 00
> 010: 00 00 00 00 00 00 00 00 78 00 00 c1 b8 00 00 c1
> 020: 00 06 00 00 01 00 00 00 ff ff ff ff a7 03 00 00
> 030: 00 00 00 00 00 00 00 00 98 00 00 c1 d8 00 00 c1
> 040: 00 04 00 00 00 00 00 00 ff ff ff ff 00 00 00 00
> 050: 00 00 00 00 00 00 00 00 b8 00 00 c1 f8 00 00 c1
> 060: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
> 070: 00 00 00 00 00 00 00 00 d8 00 00 c1 18 01 00 c1
> 080: 00 06 00 00 01 00 00 00 ff ff ff ff 9c 03 00 00
> 090: 00 00 00 00 00 00 00 00 f8 00 00 c1 38 01 00 c1
> 0a0: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
> 0b0: 00 00 00 00 00 00 00 00 18 01 00 c1 58 01 00 c1
Wow, freeing lots of PageReserved() pages. I assume via free_initmem(),
but it's strange that free_initmem() makes no appearance in the backtrace.
I don't know which change could have caused this. Nobody else has reported
this, but 32-on-64 might be pretty rare. If you can send the config I'll
see if it happens here?
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.6.22-rc6-mm1 bad_page events.
2007-07-03 15:37 ` Mathieu Desnoyers
@ 2007-07-03 16:26 ` Frederik Deweerdt
2007-07-03 17:33 ` [PATCH] i386 CPA fix - do not free reserved pages Mathieu Desnoyers
0 siblings, 1 reply; 6+ messages in thread
From: Frederik Deweerdt @ 2007-07-03 16:26 UTC (permalink / raw)
To: Mathieu Desnoyers; +Cc: Alan Cox, akpm, linux-kernel
On Tue, Jul 03, 2007 at 11:37:47AM -0400, Mathieu Desnoyers wrote:
> Hi Alan,
>
> I already sent a fix to Andrew and Andi for this (hrm, forget to CC
> lkml on the original message):
>
>
> x86_64 mm cpa cache flush fix
>
> X86_64 and i386 cpa cache flush fix:
>
> list_del the deferred list entries to poison their pointers.
> clear the flag for every page put in the list.
>
Hi Mathieu,
I've tried the patch on rc6-mm1, but it doesn't seem to fix the
problem. From what I understood, the bad_page() is called on PG_reserved
being set (flags:0x00000400), not the lru pointer being not NULL or
PG_arch_1 being set.
Regards,
Frederik
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
> CC: Andi Kleen <ak@suse.de>
[...]
> flush_map(&l);
> list_for_each_entry_safe(pg, next, &l, lru) {
> + clear_bit(PG_arch_1, &pg->flags);
> + list_del(&pg->lru);
> if (page_private(pg) != 0)
> continue;
> ClearPagePrivate(pg);
> - clear_bit(PG_arch_1, &pg->flags);
> __free_page(pg);
> }
> }
[...]
> * Alan Cox (alan@lxorguk.ukuu.org.uk) wrote:
> > X86 32bit with lots of debug turned on I get this:
[...]
> > Bad page state in process 'swapper'
> > page:c10000c0 flags:0x00000400 mapping:00000000 mapcount:0 count:0
> > Trying to fix it up, but a reboot is needed
> > Backtrace:
> > [<c024589c>] bad_page+0x6c/0x100
> > [<c024648d>] free_hot_cold_page+0x5d/0x140
> > [<c02116c2>] global_flush_tlb+0x112/0x130
> > [<c020102d>] init_post+0xd/0xe0
> > [<c047c876>] kernel_init+0x216/0x220
> > [<c0214c50>] schedule_tail+0x0/0xe0
> > [<c047c660>] kernel_init+0x0/0x220
> > [<c047c660>] kernel_init+0x0/0x220
> > [<c0204227>] kernel_thread_helper+0x7/0x10
> > =======================
> > Hexdump:
> > 000: 00 06 00 00 01 00 00 00 ff ff ff ff 0f 00 00 00
> > 010: 00 00 00 00 00 00 00 00 78 00 00 c1 b8 00 00 c1
> > 020: 00 06 00 00 01 00 00 00 ff ff ff ff a7 03 00 00
> > 030: 00 00 00 00 00 00 00 00 98 00 00 c1 d8 00 00 c1
> > 040: 00 04 00 00 00 00 00 00 ff ff ff ff 00 00 00 00
> > 050: 00 00 00 00 00 00 00 00 b8 00 00 c1 f8 00 00 c1
> > 060: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
> > 070: 00 00 00 00 00 00 00 00 d8 00 00 c1 18 01 00 c1
> > 080: 00 06 00 00 01 00 00 00 ff ff ff ff 9c 03 00 00
> > 090: 00 00 00 00 00 00 00 00 f8 00 00 c1 38 01 00 c1
> > 0a0: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
> > 0b0: 00 00 00 00 00 00 00 00 18 01 00 c1 58 01 00 c1
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
>
> --
> Mathieu Desnoyers
> Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] i386 CPA fix - do not free reserved pages
2007-07-03 16:26 ` Frederik Deweerdt
@ 2007-07-03 17:33 ` Mathieu Desnoyers
2007-07-03 19:20 ` Frederik Deweerdt
0 siblings, 1 reply; 6+ messages in thread
From: Mathieu Desnoyers @ 2007-07-03 17:33 UTC (permalink / raw)
To: Frederik Deweerdt; +Cc: Alan Cox, akpm, linux-kernel, Andi Kleen
Right, there is a test missing, can you try this fix on top of my
x86_64 mm cpa cache flush fix ?
i386 CPA fix - do not free reserved pages
We have to use the same conditions found in change_page_attr in
global_tlb_flush regarding the conditions that leads to free the page.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
---
arch/i386/mm/pageattr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-2.6-lttng/arch/i386/mm/pageattr.c
===================================================================
--- linux-2.6-lttng.orig/arch/i386/mm/pageattr.c 2007-07-03 13:25:48.000000000 -0400
+++ linux-2.6-lttng/arch/i386/mm/pageattr.c 2007-07-03 13:28:34.000000000 -0400
@@ -247,7 +247,7 @@
list_for_each_entry_safe(pg, next, &l, lru) {
clear_bit(PG_arch_1, &pg->flags);
list_del(&pg->lru);
- if (page_private(pg) != 0)
+ if (PageReserved(pg) || !cpu_has_pse || page_private(pg) != 0)
continue;
ClearPagePrivate(pg);
__free_page(pg);
* Frederik Deweerdt (deweerdt@free.fr) wrote:
> On Tue, Jul 03, 2007 at 11:37:47AM -0400, Mathieu Desnoyers wrote:
> > Hi Alan,
> >
> > I already sent a fix to Andrew and Andi for this (hrm, forget to CC
> > lkml on the original message):
> >
> >
> > x86_64 mm cpa cache flush fix
> >
> > X86_64 and i386 cpa cache flush fix:
> >
> > list_del the deferred list entries to poison their pointers.
> > clear the flag for every page put in the list.
> >
> Hi Mathieu,
>
> I've tried the patch on rc6-mm1, but it doesn't seem to fix the
> problem. From what I understood, the bad_page() is called on PG_reserved
> being set (flags:0x00000400), not the lru pointer being not NULL or
> PG_arch_1 being set.
>
> Regards,
> Frederik
>
> > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
> > CC: Andi Kleen <ak@suse.de>
> [...]
> > flush_map(&l);
> > list_for_each_entry_safe(pg, next, &l, lru) {
> > + clear_bit(PG_arch_1, &pg->flags);
> > + list_del(&pg->lru);
> > if (page_private(pg) != 0)
> > continue;
> > ClearPagePrivate(pg);
> > - clear_bit(PG_arch_1, &pg->flags);
> > __free_page(pg);
> > }
> > }
> [...]
> > * Alan Cox (alan@lxorguk.ukuu.org.uk) wrote:
> > > X86 32bit with lots of debug turned on I get this:
> [...]
> > > Bad page state in process 'swapper'
> > > page:c10000c0 flags:0x00000400 mapping:00000000 mapcount:0 count:0
> > > Trying to fix it up, but a reboot is needed
> > > Backtrace:
> > > [<c024589c>] bad_page+0x6c/0x100
> > > [<c024648d>] free_hot_cold_page+0x5d/0x140
> > > [<c02116c2>] global_flush_tlb+0x112/0x130
> > > [<c020102d>] init_post+0xd/0xe0
> > > [<c047c876>] kernel_init+0x216/0x220
> > > [<c0214c50>] schedule_tail+0x0/0xe0
> > > [<c047c660>] kernel_init+0x0/0x220
> > > [<c047c660>] kernel_init+0x0/0x220
> > > [<c0204227>] kernel_thread_helper+0x7/0x10
> > > =======================
> > > Hexdump:
> > > 000: 00 06 00 00 01 00 00 00 ff ff ff ff 0f 00 00 00
> > > 010: 00 00 00 00 00 00 00 00 78 00 00 c1 b8 00 00 c1
> > > 020: 00 06 00 00 01 00 00 00 ff ff ff ff a7 03 00 00
> > > 030: 00 00 00 00 00 00 00 00 98 00 00 c1 d8 00 00 c1
> > > 040: 00 04 00 00 00 00 00 00 ff ff ff ff 00 00 00 00
> > > 050: 00 00 00 00 00 00 00 00 b8 00 00 c1 f8 00 00 c1
> > > 060: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
> > > 070: 00 00 00 00 00 00 00 00 d8 00 00 c1 18 01 00 c1
> > > 080: 00 06 00 00 01 00 00 00 ff ff ff ff 9c 03 00 00
> > > 090: 00 00 00 00 00 00 00 00 f8 00 00 c1 38 01 00 c1
> > > 0a0: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
> > > 0b0: 00 00 00 00 00 00 00 00 18 01 00 c1 58 01 00 c1
> > > -
> > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > > Please read the FAQ at http://www.tux.org/lkml/
> > >
> >
> > --
> > Mathieu Desnoyers
> > Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
> > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
>
--
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] i386 CPA fix - do not free reserved pages
2007-07-03 17:33 ` [PATCH] i386 CPA fix - do not free reserved pages Mathieu Desnoyers
@ 2007-07-03 19:20 ` Frederik Deweerdt
0 siblings, 0 replies; 6+ messages in thread
From: Frederik Deweerdt @ 2007-07-03 19:20 UTC (permalink / raw)
To: Mathieu Desnoyers; +Cc: Alan Cox, akpm, linux-kernel, Andi Kleen
On Tue, Jul 03, 2007 at 01:33:24PM -0400, Mathieu Desnoyers wrote:
> Right, there is a test missing, can you try this fix on top of my
> x86_64 mm cpa cache flush fix ?
No warning with both patches applied, thanks Mathieu.
Frederik
>
>
> i386 CPA fix - do not free reserved pages
>
> We have to use the same conditions found in change_page_attr in
> global_tlb_flush regarding the conditions that leads to free the page.
>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
> ---
> arch/i386/mm/pageattr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6-lttng/arch/i386/mm/pageattr.c
> ===================================================================
> --- linux-2.6-lttng.orig/arch/i386/mm/pageattr.c 2007-07-03 13:25:48.000000000 -0400
> +++ linux-2.6-lttng/arch/i386/mm/pageattr.c 2007-07-03 13:28:34.000000000 -0400
> @@ -247,7 +247,7 @@
> list_for_each_entry_safe(pg, next, &l, lru) {
> clear_bit(PG_arch_1, &pg->flags);
> list_del(&pg->lru);
> - if (page_private(pg) != 0)
> + if (PageReserved(pg) || !cpu_has_pse || page_private(pg) != 0)
> continue;
> ClearPagePrivate(pg);
> __free_page(pg);
>
>
> * Frederik Deweerdt (deweerdt@free.fr) wrote:
> > On Tue, Jul 03, 2007 at 11:37:47AM -0400, Mathieu Desnoyers wrote:
> > > Hi Alan,
> > >
> > > I already sent a fix to Andrew and Andi for this (hrm, forget to CC
> > > lkml on the original message):
> > >
> > >
> > > x86_64 mm cpa cache flush fix
> > >
> > > X86_64 and i386 cpa cache flush fix:
> > >
> > > list_del the deferred list entries to poison their pointers.
> > > clear the flag for every page put in the list.
> > >
> > Hi Mathieu,
> >
> > I've tried the patch on rc6-mm1, but it doesn't seem to fix the
> > problem. From what I understood, the bad_page() is called on PG_reserved
> > being set (flags:0x00000400), not the lru pointer being not NULL or
> > PG_arch_1 being set.
> >
> > Regards,
> > Frederik
> >
> > > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
> > > CC: Andi Kleen <ak@suse.de>
> > [...]
> > > flush_map(&l);
> > > list_for_each_entry_safe(pg, next, &l, lru) {
> > > + clear_bit(PG_arch_1, &pg->flags);
> > > + list_del(&pg->lru);
> > > if (page_private(pg) != 0)
> > > continue;
> > > ClearPagePrivate(pg);
> > > - clear_bit(PG_arch_1, &pg->flags);
> > > __free_page(pg);
> > > }
> > > }
> > [...]
> > > * Alan Cox (alan@lxorguk.ukuu.org.uk) wrote:
> > > > X86 32bit with lots of debug turned on I get this:
> > [...]
> > > > Bad page state in process 'swapper'
> > > > page:c10000c0 flags:0x00000400 mapping:00000000 mapcount:0 count:0
> > > > Trying to fix it up, but a reboot is needed
> > > > Backtrace:
> > > > [<c024589c>] bad_page+0x6c/0x100
> > > > [<c024648d>] free_hot_cold_page+0x5d/0x140
> > > > [<c02116c2>] global_flush_tlb+0x112/0x130
> > > > [<c020102d>] init_post+0xd/0xe0
> > > > [<c047c876>] kernel_init+0x216/0x220
> > > > [<c0214c50>] schedule_tail+0x0/0xe0
> > > > [<c047c660>] kernel_init+0x0/0x220
> > > > [<c047c660>] kernel_init+0x0/0x220
> > > > [<c0204227>] kernel_thread_helper+0x7/0x10
> > > > =======================
> > > > Hexdump:
> > > > 000: 00 06 00 00 01 00 00 00 ff ff ff ff 0f 00 00 00
> > > > 010: 00 00 00 00 00 00 00 00 78 00 00 c1 b8 00 00 c1
> > > > 020: 00 06 00 00 01 00 00 00 ff ff ff ff a7 03 00 00
> > > > 030: 00 00 00 00 00 00 00 00 98 00 00 c1 d8 00 00 c1
> > > > 040: 00 04 00 00 00 00 00 00 ff ff ff ff 00 00 00 00
> > > > 050: 00 00 00 00 00 00 00 00 b8 00 00 c1 f8 00 00 c1
> > > > 060: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
> > > > 070: 00 00 00 00 00 00 00 00 d8 00 00 c1 18 01 00 c1
> > > > 080: 00 06 00 00 01 00 00 00 ff ff ff ff 9c 03 00 00
> > > > 090: 00 00 00 00 00 00 00 00 f8 00 00 c1 38 01 00 c1
> > > > 0a0: 00 06 00 00 01 00 00 00 ff ff ff ff 00 04 00 00
> > > > 0b0: 00 00 00 00 00 00 00 00 18 01 00 c1 58 01 00 c1
> > > > -
> > > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > > > the body of a message to majordomo@vger.kernel.org
> > > > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > > > Please read the FAQ at http://www.tux.org/lkml/
> > > >
> > >
> > > --
> > > Mathieu Desnoyers
> > > Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
> > > OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
> > > -
> > > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > > Please read the FAQ at http://www.tux.org/lkml/
> > >
> >
>
> --
> Mathieu Desnoyers
> Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-07-03 19:26 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-03 14:06 2.6.22-rc6-mm1 bad_page events Alan Cox
2007-07-03 15:37 ` Mathieu Desnoyers
2007-07-03 16:26 ` Frederik Deweerdt
2007-07-03 17:33 ` [PATCH] i386 CPA fix - do not free reserved pages Mathieu Desnoyers
2007-07-03 19:20 ` Frederik Deweerdt
2007-07-03 15:55 ` 2.6.22-rc6-mm1 bad_page events Andrew Morton
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.