[#5873] Trunk kernel crashed when testing bonnie++ for usb1761 driver
Submitted By: Vivi Li
Open Date
2010-01-28 05:29:01 Close Date
2010-08-12 04:41:56
Priority:
Medium Assignee:
Michael Hennerich
Status:
Closed Fixed In Release:
N/A
Found In Release:
2010R1 Release:
Category:
N/A Board:
STAMP
Processor:
BF537 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
Toolchain version or rev.:
gcc4.3_trunk3771
App binary format:
N/A
Summary: Trunk kernel crashed when testing bonnie++ for usb1761 driver
Details:
Trunk kernel crashed when testing bonnie++ for usb1761 driver on bf537-stamp.
--
Linux version 2.6.32.6-ADI-2010R1-pre-svn8236 (test@uclinux57-usb1761-vs6624-ad1371) (gcc version 4.3.4 (ADI-trunk/svn-3771) ) #0
register early platform devices
bootconsole [early_shadow0] enabled
bootconsole [early_BFuart0] enabled
early printk enabled on early_BFuart0
Limiting kernel memory to 56MB due to anomaly 05000263
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
fixedcode = 0x00000400-0x00000490
text = 0x00001000-0x0013e500
rodata = 0x0013e500-0x001ac078
bss = 0x001ad000-0x001be34c
data = 0x001be34c-0x001d4000
stack = 0x001d2000-0x001d4000
init = 0x001d4000-0x00903000
available = 0x00903000-0x03800000
DMA Zone = 0x03f00000-0x04000000
Hardware Trace Active and Enabled
Boot Mode: 0
Reset caused by Software reset
Blackfin support (C) 2004-2009 Analog Devices, Inc.
Compiled for ADSP-BF537 Rev 0.2
Blackfin Linux support by http://blackfin.uclinux.org/
Processor Speed: 500 MHz core clock and 125 MHz System Clock
NOMPU: setting up cplb tables
Instruction Cache Enabled for CPU0
External memory: cacheable in instruction cache
Data Cache Enabled for CPU0
External memory: cacheable (write-back) in data cache
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 14224
Kernel command line: root=/dev/mtdblock0 rw clkin_hz=25000000 earlyprintk=serial,uart0,57600 console=ttyBF0,57600 ip=10.100.4.50f
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 47548k/65536k RAM, (7356k init code, 1269k kernel code, 599k data, 1024k dma, 7740k reserved)
Hierarchical RCU implementation.
NR_IRQS:130
Configuring Blackfin Priority Driven Interrupts
console [ttyBF0] enabled, bootconsole disabled
console [ttyBF0] enabled, bootconsole disabled
Calibrating delay loop... 997.37 BogoMIPS (lpj=1994752)
Security Framework initialized
Mount-cache hash table entries: 512
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (16 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 48 KB (36 KB free)
NET: Registered protocol family 16
Blackfin DMA Controller
stamp_init(): registering device resources
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Switching to clocksource bfin_cs_cycles
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
msgmni has been set to 92
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
bfin-uart: Blackfin serial driver
bfin-uart.0: ttyBF0 at MMIO 0xffc00400 (irq = 18) is a BFIN-UART
brd: module loaded
bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc00500, dma channel@7
bfin_mii_bus: probed
bfin_mac: attached PHY driver [SMSC LAN83C185] (mii_bus:phy_addr=0:01, irq=-1, mdc_clk=2500000Hz(mdc_div=24)@sclk=125MHz)
bfin_mac bfin_mac.0: Blackfin on-chip Ethernet MAC driver, Version 1.1
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
TCP cubic registered
NET: Registered protocol family 17
IP-Config: Complete:etting system clock to 1970-01-01 00:50:56 UTC (3056)
device=eth0, addr=10.100.4.50, mask=255.255.255.0, gw=10.100.4.174,
host=bf537-stamp, domain=, nis-domain=(none),
bootserver=10.100.4.174, rootserver=10.100.4.174, rootpath=
Freeing unused kernel memory: 7356k freed
dma_alloc_init: dma_page @ 0x0293a000 - 256 pages at 0x03f00000
_____________________________________
a8888b. / Welcome to the uClinux distribution \
d888888b. / _ _ \
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ \ \/ / |
8' .88 \ | | | | _ \| | | | \ / |
8`._.' Y8. \ | |__ | | | | | |_| | / \ |
d/ `8b. \ \____||_|_| |_|\____|/_/\_\ |
dP . Y8b. \ For embedded processors including |
d8:' " `::88b \ the Analog Devices Blackfin /
d8" 'Y88b \___________________________________/
:8P ' :888
8a. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - http://blackfin.uclinux.org/
\ YP" `| 8P `. - http://docs.blackfin.uclinux.org/
/ \.___.d| .' - http://www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - https://www.analog.com/blackfin
Have a lot of fun...
BusyBox v1.15.3 (2010-01-27 08:27:53 CST) hush - the humble shell
root:/> PHY: 0:01 - Link is Up - 100/Full
root:/> modprobe isp1760
isp1760 isp1760.0: NXP ISP1760 USB Host Controller
isp1760 isp1760.0: new USB bus registered, assigned bus number 1
isp1760 isp1760.0: bus width: 16, oc: digital
isp1760 isp1760.0: irq 57, io mem 0x203c0000
isp1760 isp1760.0: USB ISP 1761 HW rev. 1 started
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ISP1760 USB device initialised
root:/> port 1 high speed
usb 1-1: new high speed USB device using isp1760 and address 2
port 1 high speed
usb 1-1: configuration #1 chosen from 1 choice
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 3 ports detected
usb 1-1.1: new high speed USB device using isp1760 and address 3
usb 1-1.1: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
scsi 0:0:0:0: Direct-Access SanDisk Cruzer 7.01 PQ: 0 ANSI: 0 CCS
scsi 0:0:0:1: CD-ROM SanDisk Cruzer 7.01 PQ: 0 ANSI: 0
sd 0:0:0:0: [sda] 1957887 512-byte logical blocks: (1.00 GB/955 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1 sda2
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
root:/>
root:/>
root:/> mke2fs /dev/sda1
mke2fs 1.41.9 (22-Aug-2009)
ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /dev/sda1 is moun.
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
120960 inodes, 483808 blocks
24190 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
60 block groups
8192 blocks per group, 8192 fragments per group
2016 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
root:/> mount -t ext2 /dev/sda1 /mnt
root:/> time bonnie++ -u root -d /mnt
Using uid:0, gid:0.
Writing a byte at a time...done
Writing intelligently...
Rewriting...------------[ cut here ]------------
Kernel BUG at 0207c776 [verbose debug info unavailable]
Kernel panic - not syncing: BUG()
Hardware Trace:
0 Target : <0x000050e4> { _trap_c + 0x0 }
Source : <0xffa006c4> { _exception_to_level5 + 0xa4 } CALL pcrel
1 Target : <0xffa00620> { _exception_to_level5 + 0x0 }
Source : <0xffa004d4> { _bfin_return_from_exception + 0x20 } RTX
2 Target : <0xffa004b4> { _bfin_return_from_exception + 0x0 }
Source : <0xffa00578> { _ex_trap_c + 0x74 } JUMP.S
3 Target : <0xffa00504> { _ex_trap_c + 0x0 }
Source : <0xffa00798> { _trap + 0x68 } JUMP (P4)
4 Target : <0xffa00750> { _trap + 0x20 }
Source : <0xffa0074c> { _trap + 0x1c } IF !CC JUMP
5 Target : <0xffa00730> { _trap + 0x0 }
Source : <0x0207c628> { :isp1760:_isp1760_register + 0x498 } IF !CC JUMP
6 Target : <0x0207c5bc> { :isp1760:_isp1760_register + 0x42c }
Source : <0x0207d914> { :isp1760:_isp1760_register + 0x1784 } CALL (P2)
7 Target : <0x0207d902> { :isp1760:_isp1760_register + 0x1772 }
Source : <0x0207da0c> { :isp1760:_isp1760_register + 0x187c } IF CC JUMP
8 Target : <0x0207da0a> { :isp1760:_isp1760_register + 0x187a }
Source : <0x00041168> { _kmem_cache_free + 0x3c } RTS
9 Target : <0x00041162> { _kmem_cache_free + 0x36 }
Source : <0x00041154> { _kmem_cache_free + 0x28 } IF CC JUMP
10 Target : <0x0004112c> { _kmem_cache_free + 0x0 }
Source : <0x0207da08> { :isp1760:_isp1760_register + 0x1878 } CALL (P1)
11 Target : <0x0207d9da> { :isp1760:_isp1760_register + 0x184a }
Source : <0x0207d8b4> { :isp1760:_isp1760_register + 0x1724 } IF !CC JUMP
12 Target : <0x0207d8ae> { :isp1760:_isp1760_register + 0x171e }
Source : <0x0207d9a8> { :isp1760:_isp1760_register + 0x1818 } IF CC JUMP
13 Target : <0x0207d9a4> { :isp1760:_isp1760_register + 0x1814 }
Source : <0x0207d8a8> { :isp1760:_isp1760_register + 0x1718 } IF !CC JUMP
14 Target : <0x0207d882> { :isp1760:_isp1760_register + 0x16f2 }
Source : <0x0207c9f2> { :isp1760:_isp1760_register + 0x862 } RTS
15 Target : <0x0207c9d8> { :isp1760:_isp1760_register + 0x848 }
Source : <0x0207c9bc> { :isp1760:_isp1760_register + 0x82c } IF !CC JUMP
Stack info:
SP: [0x001d3b60] <0x001d3b60> /* kernel dynamic memory (maybe user-space) */
FP: (0x001d3c1c)
Memory from 0x001d3b60 to 001d4000
001d3b60:[00173dcc]<0013e36e> 001d3c44 00173dcc 001b23ce 001b23ce 001b23ce 001d3b98
001d3b80:<000054d6> 001d3c44 ffe02014 02ba38c0 00009008 001d3bb0 0000003f 0000003f
001d3ba0: 0294f0c4 02ba3a40 0207c000 40000000 00008000 <0000ba96> 00000015 02b84ac4
001d3bc0: 00002000 00000000 00000000 0016db37 7fffffff 0000000a 001d3c1c 00000000
001d3be0: 00023b7f 00000459 02625a00 <000275e0> 00000000 ffffffea 00000000 3dd1b4e6
001d3c00: 003d0900 00000001 00000000 00000458 029f6300 <0002a5f0> 001c231c (00000000)
001d3c20:<ffa006c8> 001af000 00009008 00002021 80000000 00000000 ffffffff 7fffffff
001d3c40: 00000480 00000480 00009008 00002021 00000000 001d3d20 00000480 0207c776
001d3c60:<0207d916> 0000003f 02003025 0207c9c0 0207c60e 0207c9b6 0207c60e 00000004
001d3c80: 00000000 0000075b 00000000 000017bd 00000000 00000000 00000000 00000000
001d3ca0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
001d3cc0: ffffffe8 00000000 0000001f 00000000 00997d7c 001d4000 0294f000 02ba3800
001d3ce0: 0290a2c0 02ba38c0 203c0154 00000154 020330c0 02ba38c0 00002000 80000000
001d3d00: 00000000 203da000 02ba38c0 10624dd3 0000003f 0000003f 020330c0 00000006
001d3d20: 001d3d58 <0000bb9c> 0290a6c0 0290a6c0 0294f0c4 0000003f 0000001f 80000000
001d3d40: 00011100 00000015 0290a3c0 0290a3c0 00000000 00000000 00000020 00000020
001d3d60:<0207d916> 02ba3800 0290a2c0 0294f0c4 02ba38c0 00002000 80000000 00018000
001d3d80: ffffffea 02b9f34c 3e0ebde7 00002000 00000001 00000000 00000458 02dc6c00
001d3da0:<0002a5f0> 001c231c 0000007c 7fffffff 00000000 80000000 00000fe0 00008000
001d3dc0: 02b9f34c 00002418 a8010000 00002418 000f8000 03802000 00000000 00000000
001d3de0: 00000000 00000000 00000050 <0207df64> 0294f000 0294f000 001bf870 00000103
001d3e00: 00000000 00000039 0000003f 0294f000 00000001 0000ffff <000d5eba> 0294f08c
001d3e20: 0000ffff <0001858c> 00000001 029f74d6 <0002fb26> 02947220 ffffffc0 00000000
001d3e40: 001b6cb8 <000323f4> 00000009 <0003112c> 001c3b28 00000039 00000000 00000039
001d3e60: 001c2958 00000000 00000000 <0001531e><ffa0035c><000311f4><0000990c> 001c3b28
001d3e80: 00000000 00000006 001ad268 <ffa0035c> 001ad268 <ffa00376> 001c73d0 001d2008
001d3ea0: 001d2008 00000022 00000000 00000000 00000000 00000244 <ffa00c22> ffc00014
001d3ec0: ffa00120 001edf14 00000000 00000000 00000000 ffa00144 00009010 00002000
001d3ee0: 00000000 02ba2000 00512206 ffa00144 <ffa002b4> 0000000c 02002020 0207c034
001d3f00: ffa01710 0207c02c ffa0170e 00000000 00000000 00000419 00000000 00041c19
001d3f20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
001d3f40: 00000000 00000000 00000000 00000000 ffffffe8 00000000 0000001f 00000000
001d3f60: 00997d7c 001d4000 001ad268 ffa00120 001d2008 001d2008 001bf870 0293b060
001d3f80: ffa0099c ffa00120 001edf14 00000000 00000000 00000065 00000002 ffffffc0
001d3fa0: 0000ffff 0000ffff ffa0099c 00000006 00000000 001eb544 001edf14 001d4000
001d3fc0: 001d46f6 001b856c 001ad004 00000000 001eb544 00171ba0 001eb544 001abd1c
001d3fe0: 0000002b 001d42a0 001edf14 001df8de 00000000 00000000 ffb00000 00000000
Return addresses in stack:
address : <0x0013e36e> { _panic + 0x46 }
address : <0x000054d6> { _trap_c + 0x3f2 }
address : <0x0000ba96> { ___wake_up_common + 0x3a }
address : <0x000275e0> { _ktime_get + 0xd8 }
address : <0x0002a5f0> { _tick_dev_program_event + 0x10 }
frame 1 : <0xffa006c8> { _exception_to_level5 + 0xa8 }
address : <0x0207d916> { :isp1760:_isp1760_register + 0x1786 }
address : <0x0000bb9c> { _complete + 0x24 }
address : <0x0207d916> { :isp1760:_isp1760_register + 0x1786 }
address : <0x0002a5f0> { _tick_dev_program_event + 0x10 }
address : <0x0207df64> { :isp1760:_isp1760_register + 0x1dd4 }
address : <0x000d5eba> { _usb_hcd_irq + 0x32 }
address : <0x0001858c> { _run_timer_softirq + 0x14 }
address : <0x0002fb26> { _handle_IRQ_event + 0x4a }
address : <0x000323f4> { _rcu_process_callbacks + 0x2c }
address : <0x0003112c> { _handle_level_irq + 0x48 }
address : <0x0001531e> { ___do_softirq + 0x76 }
address : <0xffa0035c> { _asm_do_IRQ + 0x60 }
address : <0x000311f4> { _handle_simple_irq + 0x68 }
address : <0x0000990c> { _bfin_demux_gpio_irq + 0x5c }
address : <0xffa0035c> { _asm_do_IRQ + 0x60 }
address : <0xffa00376> { _asm_do_IRQ + 0x7a }
address : <0xffa00c22> { __common_int_entry + 0x72 }
address : <0xffa002b4> { _cpu_idle + 0x30 }
(kernel hangs)
--
The last passed version:
--
kernel: Linux release 2.6.32.4-ADI-2010R1-pre-svn8203, build #20 Thu Jan 21 03:01:26 CST 2010
toolchain: bfin-uclinux-gcc release gcc version 4.3.4 (ADI-trunk/svn-3771)
user-dist: release svn-9397, build #328 Thu Jan 21 03:00:35 CST 2010
--
Follow-ups
--- Michael Hennerich 2010-01-29 11:11:37
Sorry - but I can't replicate on svn8261
root:/> modprobe isp1760
isp1760 isp1760.0: NXP ISP1760 USB Host Controller
isp1760 isp1760.0: new USB bus registered, assigned bus number 1
isp1760 isp1760.0: bus width: 16, oc: digital
isp1760 isp1760.0: irq 57, io mem 0x203c0000
isp1760 isp1760.0: USB ISP 1761 HW rev. 1 started
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
ISP1760 USB device initialised
root:/> port 1 high speed
usb 1-1: new high speed USB device using isp1760 and address 2
port 1 high speed
usb 1-1: configuration #1 chosen from 1 choice
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 3 ports detected
usb 1-1.3: new high speed USB device using isp1760 and address 3
usb 1-1.3: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
scsi 0:0:0:0: Direct-Access SanDisk U3 Cruzer Micro 2.21 PQ: 0 ANSI: 2
scsi 0:0:0:1: CD-ROM SanDisk U3 Cruzer Micro 2.21 PQ: 0 ANSI: 2
sd 0:0:0:0: [sda] 1994385 512-byte logical blocks: (1.02 GB/973 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Attached SCSI removable disk
root:/> mke2fs /dev/sda1
mke2fs 1.41.9 (22-Aug-2009)
ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab
file while determining whether.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
62336 inodes, 249116 blocks
12455 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=255852544
8 block groups
32768 blocks per group, 32768 fragments per group
7792 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
root:/> mount /dev/sda1 /mnt
root:/>
root:/> bonnie\+\+ -u root -d /mnt
Using uid:0, gid:0.
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.94 ------Sequential Output------ --Sequential Input-
--Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block--
--Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec
%CP
blackfin 300M 77 99 2648 11 2836 31 171 99 7089 27 79.4
3
Latency 145ms 1423ms 380ms 59555us 85464us 662ms
Version 1.94 ------Sequential Create------ --------Random
Create--------
blackfin -Create-- --Read--- -Delete-- -Create-- --Read---
-Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec
%CP
16 269 96 8893 99 3549 69 275 96 9732 100 902
90
Latency 14764us 544us 4901us 14247us 490us 6628us
1.93c,1.94,blackfin,1,221709,300M,,77,99,2648,11,2836,31,171,99,7089,27,79.4,3,16,,,,,269,96,8893,99,3549,69,2s
root:/> time bonnie\+\+ -u root -d /mnt
Using uid:0, gid:0.
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.94 ------Sequential Output------ --Sequential Input-
--Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block--
--Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec
%CP
blackfin 300M 78 98 2552 12 2784 31 178 99 7089 31 80.7
3
Latency 149ms 1620ms 395ms 56565us 84619us 6077ms
Version 1.94 ------Sequential Create------ --------Random
Create--------
blackfin -Create-- --Read--- -Delete-- -Create-- --Read---
-Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec
%CP
16 268 96 8959 99 3359 64 271 96 9728 99 883
87
Latency 14463us 495us 4688us 15061us 446us 2914us
1.93c,1.94,blackfin,1,222668,300M,,78,98,2552,12,2784,31,178,99,7089,31,80.7,3,16,,,,,268,96,8959,99,3359,64,2s
real 9m 44.19s
user 0m 14.12s
sys 4m 8.82s
root:/>
root:/> version
kernel: Linux release 2.6.32.7-ADI-2010R1-pre-svn8261, build #11570 Fri Jan
29 16:15:05 CET 2010
toolchain: bfin-uclinux-gcc release gcc version 4.3.4 (ADI-trunk/svn-3771)
user-dist: release svn-9367, build #4071 Fri Jan 29 16:14:32 CET 2010
root:/>
--- Vivi Li 2010-02-22 22:20:39
This bug disappeared.
Close it.
--- Vivi Li 2010-02-22 23:16:34
The above bug did disappear from svn 8261 to 8270.
But it showed again from svn 8276 to 8325.
From svn 8329 till now, bug 5924 come out.
So I reopen this bug unless it disappears after bug 5924 is fixed.
--- Vivi Li 2010-02-24 22:27:22
OK now. Close it.
--- Vivi Li 2010-02-26 04:14:06
The bug still exist in latest trunk.
So reopen it.
--- Vivi Li 2010-03-22 03:03:35
In latest trunk, the crash info changed. Bellow is the log:
--
time bonnie++ -u root -d /mnt
Using uid:0, gid:0.
Writing a byte at a time...done
Writing intelligently...done
Rewriting...Undefined instruction
<5> - May be used to emulate instructions that are not defined for
<5> a particular processor implementation.
Kernel OOPS in progress
Deferred Exception context
No Valid process in current context
return address: [0x0207c776]; contents of:
0x0207c750: 0000 0000 0024 9110 0041 4a00 9310 6de6
0x0207c760: 9077 0127 05a3 0010 c682 8384 6885 2f63
0x0207c770: 0c10 17be 2fb3 [efcd] 2000 0000 05e3 e800
0x0207c780: 000f e14a 001c 3238 e10a 462c 9110 4e60
ADSP-BF537-0.2 500(MHz CCLK) 125(MHz SCLK) (mpu off)
Linux version 2.6.33.1-ADI-2010R1-pre-svn8523
(test@uclinux57-usb1761-vs6624-ad1371) (gcc version 4.3.4 (ADI-trunk/svn-3815) )
#36 Sun Mar 21 12:13:19 CST 2010
SEQUENCER STATUS: Not tainted
SEQSTAT: 00002021 IPEND: 9008 IMASK: 003f SYSCFG: 0006
Peripheral interrupts masked off
Kernel interrupts masked off
EXCAUSE : 0x21
physical IVG3 asserted : <0xffa00730> { _trap + 0x0 }
physical IVG12 asserted : <0xffa00f7c> { _evt_evt12 + 0x0 }
physical IVG15 asserted : <0xffa01014> { _evt_system_call + 0x0 }
logical irq 6 mapped : <0xffa003a0> { _bfin_coretmr_interrupt + 0x0
}
logical irq 10 mapped : <0x000eb088> { _bfin_rtc_interrupt + 0x0 }
logical irq 18 mapped : <0x000b8bbc> { _bfin_serial_dma_rx_int + 0x0
}
logical irq 19 mapped : <0x000b891c> { _bfin_serial_dma_tx_int + 0x0
}
logical irq 24 mapped : <0x000d50e0> { _bfin_mac_interrupt + 0x0 }
logical irq 57 mapped : <0x000d9964> { _usb_hcd_irq + 0x0 }
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x001d9d20> /* kernel dynamic memory (maybe user-space) */
RETX: <0x00000480> /* Maybe fixed code section */
RETS: <0x0207d916> { :isp1760:_isp1760_register + 0x1786 }
PC : <0x0207c776> { :isp1760:_isp1760_register + 0x5e6 }
DCPLB_FAULT_ADDR: <0x001d9d1c> /* kernel dynamic memory (maybe
user-space) */
ICPLB_FAULT_ADDR: <0x0207c776> { :isp1760:_isp1760_register + 0x5e6 }
PROCESSOR STATE:
R0 : 0000003f R1 : 10624dd3 R2 : 02af39c0 R3 : 000db5b4
R4 : 00000000 R5 : 80000000 R6 : 00001000 R7 : 02af39c0
P0 : 0290aac0 P1 : 00000154 P2 : 203c0154 P3 : 02af39c0
P4 : 0290aac0 P5 : 02af3a00 FP : 0294d000 SP : 001d9c44
LB0: 0207c60e LT0: 0207c60e LC0: 00000000
LB1: 0207c9c0 LT1: 0207c9b6 LC1: 00000004
B0 : 00000020 L0 : 00000000 M0 : 00000000 I0 : 00967d7c
B1 : 0000001f L1 : 00000000 M1 : 00000001 I1 : 0000004c
B2 : 001506cc L2 : 00000000 M2 : 00000019 I2 : 00000067
B3 : 0000ffff L3 : 00000000 M3 : 00000000 I3 : 0000000e
A0.w: 000017b1 A0.x: 00000000 A1.w: 0000074f A1.x: 00000000
USP : 001da000 ASTAT: 02003025
...
--
--- Michael Hennerich 2010-06-17 08:20:12
Can you try again on latest trunk?
--- Michael Hennerich 2010-06-17 09:30:06
I was able to trigger an bug:
root:/> time bonnie\+\+ -u root -d /mnt
Using uid:0, gid:0.
Writing a byte at a time...done
Writing intelligently...done
Rewriting...------------[ cut here ]------------
kernel BUG at drivers/usb/host/isp1760-hcd.c:865!
Kernel panic - not syncing: BUG()
It appears that either our ndelay() is not accurate enough or that this delay
needs
to be larger. Increasing it fixes this issue on my side.
/*
* When this function is called from the interrupt handler to enqueue
* a follow-up packet, the SKIP register gets written and read back
* almost immediately. With ISP1761, this register requires a delay of
* 195ns between a write and subsequent read (see section 15.1.1.3).
*/
ndelay(500);
skip_map = isp1760_readl(hcd->regs + HC_ATL_PTD_SKIPMAP_REG);
BUG_ON(!skip_map);
Index: drivers/usb/host/isp1760-hcd.c
===================================================================
--- drivers/usb/host/isp1760-hcd.c (revision 8924)
+++ drivers/usb/host/isp1760-hcd.c (working copy)
@@ -859,7 +859,7 @@
* almost immediately. With ISP1761, this register requires a delay of
* 195ns between a write and subsequent read (see section 15.1.1.3).
*/
- ndelay(195);
+ ndelay(500);
skip_map = isp1760_readl(hcd->regs + HC_ATL_PTD_SKIPMAP_REG);
BUG_ON(!skip_map);
--- Robin Getz 2010-06-17 09:46:14
>It appears that either our ndelay() is not accurate enough
>or that this delay needs to be larger.
How to determine which part?
--- Michael Hennerich 2010-06-17 09:57:34
I'm in progress setting up a testbed for ndelay.
In case I can exclude the Blackfin ndelay it must be the other part.
--- Michael Hennerich 2010-06-18 04:34:30
Fix BUG_ON(!skip_map) issue. When we busy wait in order to guarantee
ISP1760 timing requirements, we need to make sure that the previous write
actually drained the hardware.
Add mmiowb()I/O write barrier before the ndelay() to ensure ordering of
I/O space writes. This will make sure that writes
following the barrier will arrive after all previous writes.
Fixed on trunk
-Michael
--- Vivi Li 2010-08-12 04:41:56
Seems OK now. So close it.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
config.linux.usbhost_176x application/octet-stream 40691 Vivi Li