[#5873] Trunk kernel crashed when testing bonnie++ for usb1761 driver

Document created by Aaronwu Employee on Sep 10, 2013
Version 1Show Document
  • View in full screen mode

[#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    - http://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

Outcomes