[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[microblaze-uclinux] Bad page state in process



Hello to everybody.

Sorry to bother you again, but I hope you could give me some advices on
how to handle my problem.

I was using a Spartan3E 1600E evaluation board with no problem.
Then we have developed a custom board and I migrated our application to
that target.

I started by using the project Xilinx-Spartan3E1600-RevA-edk91.

I'm facing a system crash that shows up as soon as I start multiple
applications on the bord, for example the snmp daemon while an ftp
transfer is already in progress or vice versa.
I can easily reproduce the error by starting the same sequence of
applications. Please note that each of them is working fine if running
alone.

I am receiving these kind of error messages on the console:

Bad page state in process 'ftpd'
page:4440b180 flags:0x79740a61 mapping:6867666a mapcount:1818715753
count:1684433515
Trying to fix it up, but a reboot is needed
Backtrace:

Call Trace: 
[<44030958>] get_page_from_freelist+0x218/0x394
[<44030b3c>] __alloc_pages+0x68/0x320
[<4403a818>] cache_alloc_refill+0x384/0x640
[<4403acd8>] __kmalloc+0x84/0xa8
[<44106f94>] __alloc_skb+0x70/0x14c
[<4401af1c>] queue_delayed_work+0x130/0x14c
...

Bad page state in process 'sh'
page:44411280 flags:0x73606706 mapping:00000000 mapcount:0
count:-1207427631
Trying to fix it up, but a reboot is needed
Backtrace:                                                                      
                                                                                
Call Trace:
[<440ededc>] XEmac_IntrHandlerDma+0x310/0x40c
[<4403095c>] get_page_from_freelist+0x218/0x394
[<44030b40>] __alloc_pages+0x68/0x320
[<44105198>] XDmaChannel_SgStart+0x80/0x160
[<4400f010>] __do_softirq2+0xac/0xcc
[<4400efbc>] __do_softirq2+0x58/0xcc
[<44030e34>] __get_free_pages+0x3c/0x7c   
...

BUG: failure at mm/slab.c:597/page_get_cache()!
Kernel panic - not syncing: BUG!
 <0>Rebooting in 120 seconds..Machine restart...

Call Trace: 
[<440179f8>] atomic_notifier_call_chain+0x8/0x1c
[<440c4c18>] bust_spinlocks+0x4c/0x6c
[<440182bc>] emergency_restart+0xc/0x20
[<44009290>] panic+0x124/0x15c
[<4403993c>] kfree+0x90/0x10c
[<44107a20>] skb_release_data+0xc4/0xe0
[<44107718>] kfree_skbmem+0xc/0xc4
[<44104d5c>] sock_wfree+0x44/0x80
[<441ec100>] __alloc_bootmem_core+0x1fc/0x44c
[<441078bc>] __kfree_skb+0xec/0x108
[<440e9690>] xemaclite_Send+0x3c/0xb4
...

So the process can change, but the result is the same. A system hang or
a reboot.

I started inspecting the RAM and tried with a simple extension to the
Xilinx RAM test. Filled the RAM with a random pattern and checked it by
reading data back. No problem arose.

I'm using EDK 9.2i and OPB bus. Tried with both mch_opb_sdram and
opb_sdram.
OPB bus is running at 50 MHz.
I'm not currently using the clock feedback.
Tried with cache disabled.
Microblaze processor is version 6.00.b
Tried with bot ethernet_lite and ethernet full.

Always got the same results.

I'll try to crash the system without generating network activity.

I would be very glad if you could give me some hints or pointers.
I already read the thread "Bad page state in process 'swapper'" on this
mailing list.

Many thanks for your time.

Giulio Mazzoleni

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/