[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/