[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] BUG: scheduling while atomic: (Kernel 2.6)
Dear John,
After patching the entry.S, I don't see thje BUG: scheduling problem in my compiled kernel (without CONFIG_PREEMPT). However, the ping results contain "ping: recvfrom: Invalid argument". Any ideas?
# ping 172.16.6.209
PING 172.16.6.209 (172.16.6.209): 56 data bytes
64 bytes from
172.16.6.209: icmp_seq=0 ttl=128 time=2.4 ms
ping: recvfrom: Invalid argument
64 bytes from 172.16.6.209: icmp_seq=1 ttl=128 time=2.9 ms
ping: recvfrom: Invalid argument
If I build my kernel with CONFIG_PREEMPT, the following errors occur whenever I ping from my system:
# ping 172.16.6.174
PING 172.16.6.174 (
172.16.6.174): 56 data bytes
64 bytes from 172.16.6.174: icmp_seq=0 ttl=64 time=12.0 ms
ping: recvfrom: Invalid argument
64BUG: scheduling while atomic: ping/0x00000001/51
Stack:
27f8bc14 24115418 27e39210 27e39210 27da0f5c 241a8194 241ac0a8 27f851d0
00000001 00000033 27f8a000 000000a2 00000000 7fffffff 00000000 27f8bc8c
27f8bce0 27f8bd18 00000000 00000000 27cb28b0 000000c0 00000000 2411b568
Call Trace:
[<24115418>] release_sock+0x124/0x144
[<241a8194>] schedule_timeout+0x2c/0x108
[<2411b568>] skb_recv_datagram+0x234/0x2b8
[<24117e40>] __kfree_skb+0x10c/0x128
[<2411b43c>] skb_recv_datagram+0x108/0x2b8
[<2411b498>] skb_recv_datagram+0x164/0x2b8
[<24117e9c>] kfree_skb+0x40/0x54
[<24163670>] raw_recvmsg+0x94/0x230
[<240061f4>] __wake_up+0x3c/0x94
[<2411b5fc>] skb_free_datagram+0x10/0x24
[<240d809c>] add_timer_randomness+0x80/0x248
[<24025e84>] autoremove_wake_function+0x0/0x4c
[<24116530>] sock_common_recvmsg+0x2c/0x50
[<240d81e4>] add_timer_randomness+0x1c8/0x248
[<240d82f0>] add_interrupt_randomness+0x2c/0x40
[<24111b18>] sock_recvmsg+0xa8/0xd8
[<2402dc28>] handle_IRQ_event+0x84/0xbc
[<2402dd68>] __do_IRQ+0x108/0x1b0
[<24112f5c>] sys_recvfrom+0xb0/0x134
[<24011c34>] irq_exit+0x38/0x5c
[<24025e84>] autoremove_wake_function+0x0/0x4c
[<240e43f8>] __uart_start+0x48/0x5c
[<240e85c0>] ulite_start_tx+0x10/0x24
[<240060d0>] default_wake_function+0x0/0x30
[<240e443c>] uart_start+0x30/0x80
[<240e43f8>] __uart_start+0x48/0x5c
[<24047328>] sys_write+0x0/0xa4
[<24112f00>] sys_recvfrom+0x54/0x134
[<24112ee8>] sys_recvfrom+0x3c/0x134
[<240e4c14>] uart_flush_chars+0x8/0x1c
[<240e195c>] write_chan+0x2a8/0x3c4
[<240061f4>] __wake_up+0x3c/0x94
[<2411376c>] sys_socketcall+0x130/0x1a4
[<240d8218>] add_timer_randomness+0x1fc/0x248
[<240dacc8>] tty_write+0x22c/0x270
[<240daca4>] tty_write+0x208/0x270
[<240dacb4>] tty_write+0x218/0x270
[<240471f0>] vfs_write+0xb4/0x148
[<2402dc28>] handle_IRQ_event+0x84/0xbc
[<2402dd68>] __do_IRQ+0x108/0x1b0
[<24002588>] work_pending+0x34/0x3c
[<24002588>] work_pending+0x34/0x3c
[<24002588>] work_pending+0x34/0x3c
bytes from
172.16.6.174: icmpBUG: scheduling while atomic: ping/0x00000002/51
Stack:
27f8bc14 27cb28b0 000000c0 00000000 27da0ec4 241a8194 241ac0a8 27f851d0
00000002 00000033 27f8a000 000000a2 24016704 7fffffff 00000000 27f8bc8c
27f8bce0 27f8bd18 00000000 00000000 27cb28b0 000000c0 00000000 2411b568
Call Trace:
[<241a8194>] schedule_timeout+0x2c/0x108
[<24016704>] __mod_timer+0x68/0x178
[<2411b568>] skb_recv_datagram+0x234/0x2b8
[<24117e40>] __kfree_skb+0x10c/0x128
[<240d809c>] add_timer_randomness+0x80/0x248
[<2411b43c>] skb_recv_datagram+0x108/0x2b8
[<2411b498>] skb_recv_datagram+0x164/0x2b8
[<24117e9c>] kfree_skb+0x40/0x54
[<24163670>] raw_recvmsg+0x94/0x230
[<2411b5fc>] skb_free_datagram+0x10/0x24
[<24025e84>] autoremove_wake_function+0x0/0x4c
[<24116530>] sock_common_recvmsg+0x2c/0x50
[<2402dc28>] handle_IRQ_event+0x84/0xbc
[<24111b18>] sock_recvmsg+0xa8/0xd8
[<24011c34>] irq_exit+0x38/0x5c
[<24001978>] do_IRQ+0x78/0x98
[<24112f5c>] sys_recvfrom+0xb0/0x134
[<24002050>] _interrupt+0x110/0x118
[<24025e84>] autoremove_wake_function+0x0/0x4c
[<240e43f8>] __uart_start+0x48/0x5c
[<240e85c0>] ulite_start_tx+0x10/0x24
[<240e443c>] uart_start+0x30/0x80
[<240e43f8>] __uart_start+0x48/0x5c
[<24112f00>] sys_recvfrom+0x54/0x134
[<24112ee8>] sys_recvfrom+0x3c/0x134
[<240e4c14>] uart_flush_chars+0x8/0x1c
[<240e195c>] write_chan+0x2a8/0x3c4
[<240061f4>] __wake_up+0x3c/0x94
[<2411376c>] sys_socketcall+0x130/0x1a4
[<240dacc8>] tty_write+0x22c/0x270
[<240daca4>] tty_write+0x208/0x270
[<240dacb4>] tty_write+0x218/0x270
[<240471f0>] vfs_write+0xb4/0x148
[<2402dc28>] handle_IRQ_event+0x84/0xbc
[<2402dd68>] __do_IRQ+0x108/0x1b0
[<24002588>] work_pending+0x34/0x3c
[<24002588>] work_pending+0x34/0x3c
[<24002588>] work_pending+0x34/0x3c
_seq=1 ttl=64 time=3.1 ms
Any ideas?
regards,
chun yeow