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

Re: [microblaze-uclinux] BUG: at kernel/softirq.c:128 _local_bh_enable()



Hi,

using the patch from AR #29947 fixed the problem at kernel/softirq.c:128 
_local_bh_enable().
Now the Bug appears at kernel/softirq.c:144 local_bh_enable() after the
first network packet is received (which generates an interupt).
UART, Timer and SystemACE also generate interupts but don't seem to
trigger the bug.

As seen in the attached log: some of the received packets are corrupted.
But I don't know if those problems are related.

Torsten


> There exists a corresponding tactical patch, v6.00.b AR #29947, for
> the Microblaze v6. By reading the application note for that patch it
> seems that it will fix the same softirq issue as with the Microblaze
> v7, AR #30051. Everything is summarized in AR #29702.
>
> So it seems that you're experiencing from a different problem - or
> that the v6.00.b (tactical) patch didn't help you.


Linux version 2.6.20-uc0 (blacksun@ubuntu-hd2) (gcc version 3.4.1 ( PetaLinux
0.20 Build -rc1 050607 )) #22 PREEMPT Wed Feb 27 16:18:15 CET 2008
setup_cpuinfo: initialising
setup_cpuinfo: Using full CPU PVR support
setup_memory: max_mapnr: 0x6ffff
setup_memory: min_low_pfn: 0x60000
setup_memory: max_low_pfn: 0x10000
On node 0 totalpages: 65536
  DMA zone: 512 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 65024 pages, LIFO batch:15
  Normal zone: 0 pages used for memmap
Built 1 zonelists.  Total pages: 65024
Kernel command line: root=/dev/xsa2 macaddr=01:23:45:67:89:ab
OPB INTC #0 at 0x41200000
PID hash table entries: 1024 (order: 10, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 257664k/262144k available
Calibrating delay loop... 49.35 BogoMIPS (lpj=246784)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 8192 bind 4096)
TCP reno registered
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
uartlite.0: ttyS0 at MMIO 0x40600000 (irq = 3) is a uartlite
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
xsysace xsa: Xilinx SystemACE revision 1.0.12
xsysace xsa: capacity: 125184 sectors
 xsa: xsa1 xsa2
probing...
xhwicap #0 at 0x40200000 mapped to 0x40200000
Xilinx HWICAP registered
eth0: using fifo mode.
eth0: PHY Address:0
eth0: Xilinx EMAC #0 at 0x40C00000 mapped to 0x40C00000, irq=2
eth0: id 2.0l; block id 11, type 1
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 100k freed
Mounting proc:
Mounting var:
Populating /var:
Running local start scripts.
Mounting sysfs:
Setting hostname:
Setting up interface lo:
Mounting /etc/dhcpc:
Starting DHCP client:

mb_platform login: root
Password:
# ifconfig
eth0      Link encap:Ethernet  HWaddr 01:23:45:67:89:AB
          UP BROADCAST NOTRAILERS RUNNING  MTU:1500  Metric:1
          RX packets:23 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
                    Interrupt:2

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

# BUG: at kernel/softirq.c:144 local_bh_enable()

Stack:
  605ff940 605ca7dc 6ff82000 6011727c ffffffff 601174c4 601997ec 60199800
  00000090 60199828 605ca854 ffffffff 605ca7dc 60157450 601657ec 600056b8
  605ff9a0 60005574 00000000 6015742c 6001fce0 00000004 6ff82000 6ffaad10
Call Trace:
[<6011727c>] neigh_create+0x380/0x660
[<601174c4>] neigh_create+0x5c8/0x660
[<60157450>] arp_bind_neighbour+0x80/0xbc
[<601657ec>] fn_hash_lookup+0x100/0x180
[<600056b8>] try_to_wake_up+0x1dc/0x210
[<60005574>] try_to_wake_up+0x98/0x210
[<6015742c>] arp_bind_neighbour+0x5c/0xbc
[<6001fce0>] __queue_work+0xf4/0x110
[<60128764>] rt_intern_hash+0x2d4/0x4c4
[<6012b704>] __ip_route_output_key+0x984/0xa1c
[<60115e90>] dst_alloc+0x44/0xd0
[<6012b138>] __ip_route_output_key+0x3b8/0xa1c
[<6012b7c0>] ip_route_output_flow+0x24/0xa8
[<601e17ac>] inflate_codes+0x118/0x5a8
[<6012b850>] ip_route_output_key+0xc/0x20
[<60040f00>] cache_alloc_refill+0x414/0x780
[<600016c0>] do_IRQ+0x78/0x98
[<60159408>] icmp_reply+0x150/0x268
[<6015a01c>] icmp_echo+0x7c/0x90
[<60040ac8>] kmem_cache_alloc+0x3c/0x60
[<6012a6cc>] ip_route_input+0x7a4/0xe58
[<6015a5bc>] icmp_rcv+0x1ac/0x1f0
[<6010c51c>] __skb_checksum_complete+0x20/0xcc
[<6015a4ac>] icmp_rcv+0x9c/0x1f0
[<6012cf8c>] ip_local_deliver+0x168/0x270
[<601e182c>] inflate_codes+0x198/0x5a8
[<6012d5a8>] ip_rcv+0x514/0x578
[<601109f4>] netif_receive_skb+0x250/0x2d0
[<60110b30>] process_backlog+0xbc/0x1a8
[<601025bc>] sock_sendmsg+0x98/0xc8
[<600f9fe8>] FifoRecvHandler+0xa0/0x2c4
[<60110cac>] net_rx_action+0x90/0x200
[<600fe898>] XEmac_IntrHandlerFifo+0x6c/0x168
[<601039b4>] sys_sendto+0xd4/0x120
[<600113e8>] __do_softirq2+0x58/0xcc
[<600f8f28>] xenet_interrupt+0x10/0x28
[<60011478>] __do_softirq+0x1c/0x30
[<6002c9d4>] handle_IRQ_event+0x40/0x9c
[<6002cb38>] __do_IRQ+0x108/0x1ac
[<600114bc>] do_softirq+0x30/0x4c
[<6002cb14>] __do_IRQ+0xe4/0x1ac
[<6001168c>] irq_exit+0x38/0x5c
[<600016c0>] do_IRQ+0x78/0x98
[<6015e930>] inet_ioctl+0xe4/0x120
[<600016cc>] do_IRQ+0x84/0x98
[<600357ac>] __alloc_pages+0x68/0x32c
[<60001d60>] _interrupt+0x110/0x118
[<600d6cf4>] strncpy+0x28/0x48
[<600d91a0>] strncpy_from_user+0x48/0x9c
[<600d6cf4>] strncpy+0x28/0x48
[<6004d6ac>] getname+0x48/0xb8
[<6004d688>] getname+0x24/0xb8
[<600442b4>] do_sys_open+0x2c/0xd0
[<60044370>] sys_open+0x18/0x2c
[<60002268>] work_pending+0x34/0x3c
[<60002268>] work_pending+0x34/0x3c


# ifconfig
eth0      Link encap:Ethernet  HWaddr 01:23:45:67:89:AB
          inet addr:192.168.0.4  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST NOTRAILERS RUNNING  MTU:1500  Metric:1
          RX packets:39 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
                    Interrupt:2

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=128 time=3.0 ms
64 bytes from 192.168.0.1: icmp_seq=1 ttl=128 time=1.2 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=128 time=1.1 ms
wrong data byte #38 should be 0x26 but was 0x24
        14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 24 25 26 27
28 29
2a 2b 2c 2d 2e 2f 30 31
2a 2b 2c 2d 2e 2f 30 31
64 bytes from 192.168.0.1: icmp_seq=3 ttl=128 time=1.2 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=128 time=2.1 ms
wrong data byte #38 should be 0x26 but was 0x24
        14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 24 25 26 27
28 29
2a 2b 2c 2d 2e 2f 30 31
        32 33 34 35 0 0 0 0 0 0 0 0 0 0 0 0

--- 192.168.0.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 1.1/1.7/3.0 ms
#

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