[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [microblaze-uclinux] PetaLinux on ML505
Dear chun yeow,
I have tried with and without CONFIG_PREEMPT and got this BUG with both
settings, but more
often with CONFIG_PREEMPT enabled. I append some debug output of both
cases below.
regards,
Gerd
With CONFIG_PREEMPT:
====================
BUG: scheduling while atomic: ping/0x00000002/51
Stack:
57d3dc14 00000000 00000001 00000000 8181c426 50189b40 5018deb8
57c95ba0
00000002 00000033 57d3c000 000000a2 7fffffff 00000000 50465040
50465094
00000000 57d3dcdc 57d3dd18 00000000 000000c0 00000000 5010c07c
57cfb840
Call Trace:
[<50189b40>] schedule_timeout+0x15c/0x16c
[<5010c07c>] skb_recv_datagram+0x1fc/0x308
[<501086d4>] __kfree_skb+0x7c/0x114
[<5012ecb4>] ip_local_deliver+0xd0/0x29c
[<5010c0a8>] skb_recv_datagram+0x228/0x308
[<5010bf78>] skb_recv_datagram+0xf8/0x308
[<5012ec74>] ip_local_deliver+0x90/0x29c
[<501ca060>] inflate_codes+0x5e0/0x5f4
[<5015aaa8>] raw_recvmsg+0x74/0x248
[<5010c194>] skb_free_datagram+0xc/0x20
[<5002961c>] autoremove_wake_function+0x0/0x48
[<50106ddc>] sock_common_recvmsg+0x2c/0x50
[<50101d74>] sock_recvmsg+0xa4/0xe4
[<50005e50>] wake_up_process+0x14/0x30
[<50111948>] net_rx_action+0x94/0x150
[<501031c8>] sys_recvfrom+0xac/0x13c
[<501d0c00>] alloc_large_system_hash+0x244/0x708
[<50013dec>] __tasklet_schedule+0x7c/0x88
[<5002961c>] autoremove_wake_function+0x0/0x48
[<500e45b8>] __uart_start+0x54/0x68
[<500e8820>] ulite_start_tx+0x10/0x24
[<500027b8>] work_pending+0x34/0x3c
[<500e45f0>] uart_start+0x24/0x78
[<500e45b8>] __uart_start+0x54/0x68
[<5002db20>] enqueue_hrtimer+0x8c/0xdc
[<50103170>] sys_recvfrom+0x54/0x13c
[<50103158>] sys_recvfrom+0x3c/0x13c
[<500e4e30>] uart_flush_chars+0x8/0x1c
[<500e1a14>] write_chan+0x2bc/0x3c4
[<5000688c>] __wake_up+0x30/0x8c
[<500022b0>] _interrupt+0x110/0x118
[<50103a6c>] sys_socketcall+0x18c/0x1f8
[<501d0c3d>] alloc_large_system_hash+0x281/0x708
[<500130b8>] current_fs_time+0x50/0x6c
[<500da6e4>] tty_write+0xdc/0x2b0
[<500da898>] tty_write+0x290/0x2b0
[<500da870>] tty_write+0x268/0x2b0
[<500522f0>] vfs_write+0x134/0x140
[<5001f6b0>] do_sigaction+0x144/0x288
[<500027b8>] work_pending+0x34/0x3c
[<500027b8>] work_pending+0x34/0x3c
[<500027b8>] work_pending+0x34/0x3c
Without CONFIG_PREEMPT:
=======================
BUG: at kernel/softirq.c:144 local_bh_enable()
Stack:
57d2fa74 00000000 57cfc7dc 57f83000 50100bb4 50100c48 5016f748
5016f75c
00000090 5016f784 57cfc000 57cfc854 57cfc7dc 00000000 50144d9c
00008000
00000000 57fb252c 00024020 00000004 00000000 50144d5c 00000004
57f83000
Call Trace:
[<50100bb4>] neigh_create+0x3f8/0x4e4
[<50100c48>] neigh_create+0x48c/0x4e4
[<50144d9c>] arp_bind_neighbour+0xb8/0xc8
[<50144d5c>] arp_bind_neighbour+0x78/0xc8
[<501117a4>] rt_intern_hash+0x234/0x500
[<5011429c>] __ip_route_output_key+0x6f0/0x9d0
[<500ff850>] dst_alloc+0x34/0xd8
[<50114094>] __ip_route_output_key+0x4e8/0x9d0
[<501145a0>] ip_route_output_flow+0x24/0xac
[<5002f110>] __do_IRQ+0x94/0x12c
[<5003b3bc>] __do_page_cache_readahead+0x1ac/0x308
[<5013f98c>] raw_sendmsg+0x354/0xa98
[<500c846c>] tty_ioctl+0x1c4/0xc50
[<5014bf5c>] inet_sendmsg+0x58/0x84
[<5016b348>] cond_resched+0x6c/0x7c
[<500ebe2c>] sock_sendmsg+0x98/0xd8
[<50033124>] file_read_actor+0x0/0xf8
[<500ed1b4>] sys_sendto+0xd0/0x12c
[<500804c0>] load_flat_binary+0x6d4/0xe88
[<500245f0>] autoremove_wake_function+0x0/0x48
[<5004186c>] kobjsize+0xc8/0x11c
[<500d3794>] ulite_start_tx+0x10/0x24
[<500c844c>] tty_ioctl+0x1a4/0xc50
[<500447b4>] kmem_cache_alloc+0x50/0x60
[<500cfed0>] __uart_start+0x54/0x68
[<500119a8>] do_softirq+0x44/0x54
[<500cfef4>] uart_start+0x10/0x2c
[<500ed138>] sys_sendto+0x54/0x12c
[<500ed17c>] sys_sendto+0x98/0x12c
[<50011b44>] local_bh_enable+0x130/0x158
[<500d05d4>] uart_flush_chars+0x8/0x1c
[<500cd378>] write_chan+0x2bc/0x3c4
[<500ef640>] lock_sock_nested+0xa8/0xc4
[<500edb60>] sys_socketcall+0x16c/0x1f8
[<500cd398>] write_chan+0x2dc/0x3c4
[<501b1c36>] build_zonelists_node+0x86/0x9c
[<500cd3ec>] write_chan+0x330/0x3c4
[<501b1c00>] build_zonelists_node+0x50/0x9c
[<500cd0bc>] write_chan+0x0/0x3c4
[<500c6344>] tty_ldisc_deref+0x80/0xc4
[<500eba60>] sock_map_fd+0x2c/0x8c
[<50006290>] default_wake_function+0x0/0x2c
[<500c6bc0>] tty_write+0xdc/0x29c
[<500c6d60>] tty_write+0x27c/0x29c
[<500c6d38>] tty_write+0x254/0x29c
[<500cd0bc>] write_chan+0x0/0x3c4
[<500490a0>] vfs_write+0x134/0x140
[<500ed3c8>] sys_setsockopt+0x3c/0xe0
[<50002618>] work_pending+0x34/0x3c
[<50002618>] work_pending+0x34/0x3c
________________________________
From: owner-microblaze-uclinux@xxxxxxxxxxxxxx
[mailto:owner-microblaze-uclinux@xxxxxxxxxxxxxx] On Behalf Of Yeoh Chun
Yeow
Sent: Donnerstag, 12. Juli 2007 03:34
To: microblaze-uclinux@xxxxxxxxxxxxxx
Subject: Re: [microblaze-uclinux] PetaLinux on ML505
Dear Theidel Gerd,
I have encounter the same "BUG: scheduling while atomic" problem on 2.6
kernel but yet to resolve the problem. Did you enable CONFIG_PREEMPT?
regards,
chun yeow
On 7/11/07, Theidel Gerd <gerd.theidel@xxxxxx> wrote:
Hi PetaLinux team and users,
I have started working with petalinux-v0.20-rc3.tar.gz on the
Xilinx
ML505
evaluation board.
To get U-Boot working I made these changes:
1) In file u-boot\include\configs\petalogix- microblaze-auto.h
change
#define CFG_MAX_FLASH_SECT 128
to
#define CFG_MAX_FLASH_SECT 264
#define CFG_FLASH_PROTECTION
since the Flash on the ML505 has 259 sectors.
2) Replace the files
u-boot/drivers/cfi_flash.c
u-boot/include/flash.h
with the versions from u-boot-1.2.0
and add the global variabel "monitor_flash_len" in
cfi_flash.c:
ulong monitor_flash_len;
without the changes in 2) u-boot first seemed to work but
then
crashed after u-boot was written to flash, the system was
restarted
and "run load_uboot" was executed:
U-Boot> run load_uboot
TFTP from server 192.168.0.100; our IP address is
192.168.0.38
Filename 'u-boot-s.bin'.
Load address: 0x50000000
Loading: #########################
done
Bytes transferred = 124016 (1e470 hex)
=================================================
FS-BOOT First Stage Bootloader (c) 2006 PetaLogix
=================================================
FS-BOOT: System initialisation completed.
FS-BOOT: Booting from FLASH. Press 's' for image download.
This seems a bit strange for me, because the "run load_uboot"
does
not write anything to flash, just to memory. So I am not
really sure
if that crash is caused by any other problem, but after
applying the
changes 1) and 2) I did not notice any problems at all with
u-boot.
After loading Kernel uclinux 2.6.20-uc0 I discovered the
following
problems
with ping:
# ping 216.239.59.104
PING 216.239.59.104 (216.239.59.104): 56 data bytes
64 bytes from 216.239.59.104: icmp_seq=0 ttl=240 time=32.3 ms
ping: recvfrom: Invalid argument
ping: recvfrom: Invalid argument
64 bytes from 216.239.59.104: icmp_seq=2 ttl=240 time=33.3 ms
64 bytes from 216.239.59.104: icmp_seq=3 ttl=240 time=32.7 ms
64 bytes from 216.239.59.104: icmp_seq=4 ttl=240 time=34.9 ms
64 bytes from 216.239.59.104: icmp_seq=5 ttl=240 time=32.3 ms
ping: recvfrom: Invalid argument
64 bytes from 216.239.59.104: icmp_seq=6 ttl=240 time=34.2 ms
ping: recvfrom: Invalid argument
64 bytes from 216.239.59.104: icmp_seq=7 ttl=240 time=34.0 ms
ping: recvfrom: Invalid argument
64 bytes from 216.239.59.104: icmp_seq=8 ttl=240 time=34.4 ms
--- 216.239.59.104 ping statistics ---
9 packets transmitted, 8 packets received, 11% packet loss
round-trip min/avg/max = 32.3/33.5/34.9 ms
# ping 66.98.178.193
PING 66.98.178.193 (66.98.178.193): 56 data bytes
64 bytes from 66.98.178.193: icmp_seq=0 ttl=47 time=143.1 ms
ping: recvfrom: Bad file descriptor
ping: recvfrom: Bad file descriptor
64 bytes from 66.98.178.193: icmp_seq=2 ttl=47 time=140.8 ms
ping: recvfrom: Bad file descriptor
64 bytes from 66.98.178.193: icmp_seq=3 ttl=47 time=142.7 ms
ping: recvfrom: Bad file descriptor
64 bytes from 66.98.178.193: icmp_seq=4 ttl=47 time=140.6 ms
ping: recvfrom: Bad file descriptor
64 bytes from 66.98.178.193: icmp_seq=5 ttl=47 time= 142.4 ms
--- 66.98.178.193 ping statistics ---
6 packets transmitted, 5 packets received, 16% packet loss
round-trip min/avg/max = 140.6/141.9/143.1 ms
And sometimes I get this message inside the shell:
BUG: scheduling while atomic: sh/0x00000008/71
Stack:
57effb74 50010d30 00000000 57c603d8 00000000 50002024 5015ac90
5017d1f8
00000008 00000047 0f7f4900 00000000 57efe000 00000008 57c603ec
57efffea
57c60388 00000000 57c603d8 00000000 578fff1c 00000000 00000000
00000000
Call Trace: [<50010d30>] [<50002024>] [<5017d1f8>] [<5017d06c>]
Has anyone an advice regarding the
"ping: recvfrom: Invalid argument",
"ping: recvfrom: Bad file descriptor" and
"BUG: scheduling while atomic" problems ?
Thanks and best regards,
Gerd
__________________________________________________
Gerd Theidel
Laboratory for Particle Physics (LTP)
Electronics and Measuring Systems
Paul Scherrer Institute (PSI)
WPDA/9
CH-5232 Villigen PSI
Switzerland
__________________________________________________
___________________________
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/
___________________________
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/