[#5349] Traps test failed in bf561 smp kernel

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

[#5349] Traps test failed in bf561 smp kernel

Submitted By: Vivi Li

Open Date

2009-07-13 22:43:48     Close Date

2009-08-05 23:14:23

Priority:

Medium High     Assignee:

Sonic Zhang

Status:

Closed     Fixed In Release:

N/A

Found In Release:

N/A     Release:

Category:

N/A     Board:

EZKIT Lite

Processor:

BF561     Silicon Revision:

Is this bug repeatable?:

Yes     Resolution:

Fixed

Uboot version or rev.:

    Toolchain version or rev.:

gcc4.1_2009r1-rc

App binary format:

N/A     

Summary: Traps test failed in bf561 smp kernel

Details:

 

Traps test failed in bf561 smp kernel. Test 52 didn\'t finish and reset into u-boot.

This test passed in non-smp bf561 kernel.

 

The last passed version:

--

kernel:    Linux release 2.6.28.10-ADI-2009R1-svn6960, build #32 SMP Sat Jul 11 01:37:34 GMT 2009

toolchain: bfin-uclinux-gcc release gcc version 4.1.2 (ADI svn)

user-dist: release svn-8477, build #267 Sat Jul 11 01:36:52 GMT 2009

--

 

The first failed version:

--

kernel:    Linux release 2.6.28.10-ADI-2009R1-svn6972, build #37 SMP Mon Jul 13 19:14:01 GMT 2009

toolchain: bfin-uclinux-gcc release gcc version 4.1.2 (ADI svn)

user-dist: release svn-8484, build #313 Mon Jul 13 19:13:18 GMT 2009

--

 

--

Running test 52 for exception 0x3f: Stack set to L1 instruction

... Data access CPLB miss^M

- Used by the MMU to signal a CPLB miss on a data access.^M

Deferred Exception context^M

CURRENT PROCESS:^M

COMM=traps_test PID=200^M

CPU = 1^M

TEXT = 0x006d0040-0x006d5320        DATA = 0x006d5340-0x006d7700^M

BSS = 0x006d7700-0x006d79e0  USER-STACK = 0x006d8f64^M

^M

return address: [0x006d0932]; contents of:^M

0x006d0910:  c205  b0f6  0000  3017  e300  0186  6008  e300 ^M

0x006d0920:  0d63  e140  006d  e100  67b4  61b1  e300  017c ^M

0x006d0930:  6000 [e801] 0000  05ad  0010  adf8  304f  67e1 ^M

0x006d0940:  6052  5e90  a050  e300  0c79  916a  adf8  b9f9 ^M

^M

ADSP-BF561-0.5 600(MHz CCLK) 100(MHz SCLK) (mpu off)^M

Linux version 2.6.28.10-ADI-2009R1-svn6981^M

Built with gcc version 4.1.2 (ADI svn)^M

^M

SEQUENCER STATUS:               Not tainted^M

SEQSTAT: 00060026  IPEND: 0030  SYSCFG: 0006^M

  EXCAUSE   : 0x26^M

  interrupts disabled^M

  physical IVG5 asserted : <0x0000a17c> { _evt_ivhw + 0x0 }

RETE: <0x00000000> /* Maybe null pointer? */^M

RETN: <0x006d0000> [ traps_test + 0x0 ]^M

RETX: <0x00000480> /* Maybe fixed code section */^M

RETS: <0x006d09c6> [ traps_test + 0x986 ]^M

PC  : <0x006d0932> [ traps_test + 0x8f2 ]^M

DCPLB_FAULT_ADDR: <0xffa10004> /* kernel dynamic memory */^M

ICPLB_FAULT_ADDR: <0x006d0932> [ traps_test + 0x8f2 ]^M

^M

PROCESSOR STATE:^M

R0 : 00000001    R1 : 00000034    R2 : 00000028    R3 : 00000034^M

R4 : 00000005    R5 : 00000000    R6 : 00000005    R7 : 00000000^M

P0 : 00000340    P1 : 00000034    P2 : 006d0a5c    P3 : 006d8f68^M

P4 : 006d76fc    P5 : 006d75ac    FP : ffa10000    SP : 006cff24^M

LB0: 006d446d    LT0: 006d4460    LC0: 00000000^M

LB1: 00681351    LT1: 00681350    LC1: 00000000^M

B0 : 00000000    L0 : 00000000    M0 : 00000000    I0 : 006d8fe8^M

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 006d8f68^M

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000000^M

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 00000000^M

A0.w: 00000000   A0.x: 00000000   A1.w: 00000000   A1.x: 00000000^M

USP : ffa10000  ASTAT: 02003026^M

^M

Hardware Trace:^M

Userspace Stack^M

Stack info:^M

SP: [0xffa10000] <0xffa10000> /* kernel dynamic memory */^M

Memory from 0xffa10000 to ffa10000^M

ffa10000:<0>^M

Double Fault^M

Kernel OOPS in progress^M

Deferred Exception context^M

CURRENT PROCESS:^M

COMM=traps_test PID=200^M

CPU = 1^M

TEXT = 0x006d0040-0x006d5320        DATA = 0x006d5340-0x006d7700^M

BSS = 0x006d7700-0x006d79e0  USER-STACK = 0x006d8f64^M

return address: [0x00004c62]; contents of:^M

0x00004c40:  8a25  e430  0034  6381  5408  0985  3228  183c ^M

0x00004c50:  6006  327b  b0f6  0c07  1405  6038  5406  0c00 ^M

0x00004c60:  1847 [9128] 4800  1403  0c00  101f  6000  0c07 ^M

0x00004c70:  1405  e532  0034  086a  1871  0c00  1c1d  0c07 ^M

^M

ADSP-BF561-0.5 600(MHz CCLK) 100(MHz SCLK) (mpu off)^M

Linux version 2.6.28.10-ADI-2009R1-svn6981^M

Built with gcc version 4.1.2 (ADI svn)^M

^M

SEQUENCER STATUS:               Not tainted^M

SEQSTAT: 00060026  IPEND: 0038  SYSCFG: 0006^M

  EXCAUSE   : 0x26^M

  physical IVG3 asserted : <0x00009ba0> { _trap + 0x0 }^M

  interrupts disabled^M

  physical IVG5 asserted : <0x0000a17c> { _evt_ivhw + 0x0 }^M

RETE: <0x00000000> /* Maybe null pointer? */^M

RETN: <0x006cfda4> /* kernel dynamic memory */^M

RETX: <0x00004c62> { _show_stack + 0x11e }^M

RETS: <0x00004cfc> { _show_stack + 0x1b8 }^M

PC  : <0x00004c62> { _show_stack + 0x11e }^M

DCPLB_FAULT_ADDR: <0xffa10000> /* kernel dynamic memory */^M

ICPLB_FAULT_ADDR: <0x00004c62> { _show_stack + 0x11e }^M

^M

PROCESSOR STATE:^M

R0 : 0000000d    R1 : 0000ffff    R2 : 0000001f    R3 : 001664d0^M

R4 : 006cfdb4    R5 : 0000100d    R6 : 00000000    R7 : 00000000^M

P0 : 00000001    P1 : 00155000    P2 : 00155054    P3 : 00000000^M

P4 : 00159f20    P5 : ffa10000    FP : 00000000    SP : 006cfcc8^M

LB0: 006d446d    LT0: 006d4460    LC0: 00000000^M

LB1: 00092fd2    LT1: 00092fc6    LC1: 00000000^M

B0 : 0000001b    L0 : 00000000    M0 : 00000001    I0 : 00000008^M

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 0000000f^M

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000000^M

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 0010c0b8^M

A0.w: 01900000   A0.x: 00000000   A1.w: 00004029   A1.x: 00000000^M

USP : ffa10000  ASTAT: 02002000^M

^M

Hardware Trace:^M

Kernel panic - not syncing: Double Fault - unrecoverable event^M

CPU0: stopping^M

Hardware Trace:^M

   0 Target : <0x000050c0> { _dump_stack + 0x0 }^M

     Source : <0x0000adaa> { _ipi_handler + 0x116 } CALL pcrel^M

   1 Target : <0x0000adaa> { _ipi_handler + 0x116 }^M

     Source : <0x0001609e> { _printk + 0x16 } RTS^M

   2 Target : <0x0001609a> { _printk + 0x12 }^M

     Source : <0x00016958> { _vprintk + 0x16c } RTS^M

   3 Target : <0x0001694c> { _vprintk + 0x160 }^M

     Source : <0x00016922> { _vprintk + 0x136 } IF !CC JUMP^M

   4 Target : <0x0001691a> { _vprintk + 0x12e }^M

     Source : <0x00016a9c> { _vprintk + 0x2b0 } JUMP.S^M

   5 Target : <0x00016a9c> { _vprintk + 0x2b0 }^M

     Source : <0x00015e3c> { _wake_up_klogd + 0x38 } RTS^M

   6 Target : <0x00015e04> { _wake_up_klogd + 0x0 }^M

     Source : <0x00016348> { _release_console_sem + 0x1d0 } JUMP.L^M

   7 Target : <0x00016340> { _release_console_sem + 0x1c8 }^M

     Source : <0x00016334> { _release_console_sem + 0x1bc } IF !CC JUMP^M

   8 Target : <0x00016332> { _release_console_sem + 0x1ba }^M

     Source : <0x00104106> { __spin_unlock_irqrestore + 0x42 } RTS^M

   9 Target : <0x00104100> { __spin_unlock_irqrestore + 0x3c }^M

     Source : <0x001040d6> { __spin_unlock_irqrestore + 0x12 } IF !CC JUMP^M

  10 Target : <0x001040d0> { __spin_unlock_irqrestore + 0xc }^M

     Source : <0x0000b2de> { ___raw_spin_unlock_asm + 0x16 } RTS^M

  11 Target : <0x0000b2dc> { ___raw_spin_unlock_asm + 0x14 }^M

     Source : <0x0000b124> { _put_core_lock + 0x18 } RTS^M

  12 Target : <0x0000b10c> { _put_core_lock + 0x0 }^M

     Source : <0x0000b252> { _end_lock_coherent + 0x20 } JUMP.S^M

  13 Target : <0x0000b232> { _end_lock_coherent + 0x0 }^M

     Source : <0x0000b2d8> { ___raw_spin_unlock_asm + 0x10 } CALL pcrel^M

  14 Target : <0x0000b2d0> { ___raw_spin_unlock_asm + 0x8 }^M

     Source : <0x0000b0ee> { _get_core_lock + 0x36 } RTS^M

  15 Target : <0x0000b0d6> { _get_core_lock + 0x1e }^M

     Source : <0x0000b0c8> { _get_core_lock + 0x10 } IF !CC JUMP^M

Stack info:^M

SP: [0x00175e08] <0x00175e08> /* kernel dynamic memory */^M

FP: (0x00175e08)^M

Memory from 0x00175e00 to 00176000^M

00175e00: 00175e08  00000000 [00000000]<0000adae> ffe05000  00000000  00000000  00000000 ^M

00175e20: 0000001f  00000000  00000000  00159248 <00152018><000337be> 03efe300  00000045 ^M

00175e40: 00152010  00000000  00000000  00000045  007dc000  00000006  00152010  00165028 ^M

00175e60:<00034bde> 001699e0  00000000  00003000  0064c3fc <0001a740> 00152010  00000000 ^M

00175e80:<00005922> 00000045  001934b8  00000000  0000001b  00000000 <0000a102> ffc00014 ^M

00175ea0: 001528ac  00152004  00174008  00000000  007f4ba0  0010c0b8  00001b4c  02002021 ^M

00175ec0: 0000e000  00000000  030dc000  031510d0  00001b4c <00001b1c> 00000007  02002021 ^M

00175ee0: 03150a63  00093c58  03150a62  00093c58  00000000  00000000  00000000  00000000 ^M

00175f00: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

00175f20: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

00175f40: 00000000  000f4240  00176000 <00152018> 00001b08  001528ac  00152004  00155000 ^M

00175f60: 00155000  00000000  00174008  00003000  0064c3fc  007dc000  00000004  0000001f ^M

00175f80: 00174000  0000ffff  0000ffff  00000000  00000006  00174008  00003000  0064c3fc ^M

00175fa0:<00001a32> 00003000  0064c3fc  007dc000 <00176858> 0015fc8c  00192c04  ffffffc0 ^M

00175fc0: 00000000  0018f398  00151cfc  00000015  001760c8  00000001  00191df4  00176000 ^M

00175fe0: 00183c54  00000000  00000000  00000000  ffb00000  00000000  00000000  00000000 ^M

00176000: 031133a0 ^M

Return addresses in stack:^M

   frame  1 : <0x0000adae> { _ipi_handler + 0x11a }^M

    address : <0x00152018> /* kernel dynamic memory */^M

    address : <0x000337be> { _handle_IRQ_event + 0x4e }^M

    address : <0x00034bde> { _handle_percpu_irq + 0x4e }^M

    address : <0x0001a740> { _irq_enter + 0x18 }^M

    address : <0x00005922> { _asm_do_IRQ + 0x52 }^M

    address : <0x0000a102> { __common_int_entry + 0x72 }^M

    address : <0x00001b1c> { _default_idle + 0x14 }^M

    address : <0x00152018> /* kernel dynamic memory */^M

    address : <0x00001a32> { _cpu_idle + 0x22 }^M

    address : <0x00176858> { _start_kernel + 0x2e4 }^M

^M

^M

U-Boot 2008.10-svn1954 (ADI-2009R1-rc2) (Jul  1 2009 - 00:35:43)^M

CPU:   ADSP bf561-0.3 (Detected Rev: 0.5) (bypass boot)^M

Board: ADI BF561 EZ-Kit Lite board^M

       Support: http://blackfin.uclinux.org/^M

Clock: VCO: 600 MHz, Core: 600 MHz, System: 100 MHz^M

RAM:   64 MB^M

Flash:  8 MB^M

In:    serial^M

Out:   serial^M

Err:   serial^M

Net:   MAC:   00:E0:22:FE:BA:2A^M

Hit any key to stop autoboot:  5

bfin>

--

 

Follow-ups

 

--- Sonic Zhang                                              2009-07-14 00:35:26

Not a bug. Please run traps_test by taskset on CPU0 only.

 

--- Mike Frysinger                                           2009-07-14 00:41:51

i dont think so ... sounds like our traps/SMP code isnt working properly

 

--- Vivi Li                                                  2009-07-14 02:49:22

I've test it with taskset, and traps test passed.

 

Bellow is the command I used for testing:

--

taskset 1 ./traps_test -1

--

 

--- Vivi Li                                                  2009-07-14 05:17:46

When I run it in core b, it failed at test 32 and reboot into u-boot.

 

--

taskset 2 ./traps_test -1

(...)

Running test 32 for exception 0x2b: Jump to L1 Data A

... Instruction fetch CPLB miss

- CPLB miss on an instruction fetch.

Deferred Exception context

CURRENT PROCESS:

COMM=traps_test PID=237

CPU = 1

TEXT = 0x00410040-0x00415320        DATA = 0x00415340-0x00417700

BSS = 0x00417700-0x004179e0  USER-STACK = 0x00418f64

 

return address: [0xff800000]; contents of:

0xff7fffe0:  ????  ????  ????  ????  ????  ????  ????  ????

0xff7ffff0:  ????  ????  ????  ????  ????  ????  ????  ????

0xff800000: <0>

Double Fault

Kernel OOPS in progress

Deferred Exception context

CURRENT PROCESS:

COMM=traps_test PID=237

CPU = 1

TEXT = 0x00410040-0x00415320        DATA = 0x00415340-0x00417700

BSS = 0x00417700-0x004179e0  USER-STACK = 0x00418f64

 

return address: [0x00004816]; contents of:

0x000047f0:  105e  3011  6412  0a11  105a  e120  03ff  0a01

0x00004800:  1c0f  e14a  0015  e10a  28dc  9110  0a02  1408

0x00004810:  3211  6c66  0127 [9550] 9708  6008  0010  63f8

0x00004820:  e140  feaf  0a01  1447  63f8  e140  eeff  0a01

 

ADSP-BF561-0.5 600(MHz CCLK) 100(MHz SCLK) (mpu off)

Linux version 2.6.28.10-ADI-2009R1-svn6981

Built with gcc version 4.1.2 (ADI svn)

 

SEQUENCER STATUS:               Not tainted

SEQSTAT: 00060026  IPEND: 0038  SYSCFG: 0006

  EXCAUSE   : 0x26

  physical IVG3 asserted : <0x00009ba0> { _trap + 0x0 }

  interrupts disabled

  physical IVG5 asserted : <0x0000a17c> { _evt_ivhw + 0x0 }

RETE: <0x00000000> /* Maybe null pointer? */

RETN: <0x00403e38> /* kernel dynamic memory */

RETX: <0x00004816> { _get_instruction + 0x2e }

RETS: <0x000049c4> { _dump_bfin_mem + 0x8c }

PC  : <0x00004816> { _get_instruction + 0x2e }

DCPLB_FAULT_ADDR: <0xff800000> /* kernel dynamic memory */

ICPLB_FAULT_ADDR: <0x00004816> { _get_instruction + 0x2e }

 

PROCESSOR STATE:

R0 : ff804000    R1 : ff800000    R2 : ff800002    R3 : 001664d0

R4 : ff800020    R5 : 0000100d    R6 : ff800000    R7 : ff800000

P0 : 00000001    P1 : 00403e4c    P2 : ff800000    P3 : 00403f24

P4 : 00000000    P5 : 00403e4c    FP : 00418f00    SP : 00403d5c

LB0: 0041446d    LT0: 00414460    LC0: 00000000

LB1: 00092fd2    LT1: 00092fc6    LC1: 00000000

B0 : 0000001b    L0 : 00000000    M0 : 00000001    I0 : 00000008

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 0000000f

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000000

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 0010c0b8

A0.w: 00000000   A0.x: 00000000   A1.w: 00000000   A1.x: 00000000

USP : 00418e9c  ASTAT: 02002022

 

Hardware Trace:

Kernel panic - not syncing: Double Fault - unrecoverable event

CPU0: stopping

Hardware Trace:

   0 Target : <0x000050c0> { _dump_stack + 0x0 }

     Source : <0x0000adaa> { _ipi_handler + 0x116 } CALL pcrel

   1 Target : <0x0000adaa> { _ipi_handler + 0x116 }

     Source : <0x0001609e> { _printk + 0x16 } RTS

   2 Target : <0x0001609a> { _printk + 0x12 }

     Source : <0x00016958> { _vprintk + 0x16c } RTS

   3 Target : <0x0001694c> { _vprintk + 0x160 }

     Source : <0x00016922> { _vprintk + 0x136 } IF !CC JUMP

   4 Target : <0x0001691a> { _vprintk + 0x12e }

     Source : <0x00016a9c> { _vprintk + 0x2b0 } JUMP.S

   5 Target : <0x00016a9c> { _vprintk + 0x2b0 }

     Source : <0x00015e3c> { _wake_up_klogd + 0x38 } RTS

   6 Target : <0x00015e04> { _wake_up_klogd + 0x0 }

     Source : <0x00016348> { _release_console_sem + 0x1d0 } JUMP.L

   7 Target : <0x00016340> { _release_console_sem + 0x1c8 }

     Source : <0x00016334> { _release_console_sem + 0x1bc } IF !CC JUMP

   8 Target : <0x00016332> { _release_console_sem + 0x1ba }

     Source : <0x00104106> { __spin_unlock_irqrestore + 0x42 } RTS

   9 Target : <0x00104100> { __spin_unlock_irqrestore + 0x3c }

     Source : <0x001040d6> { __spin_unlock_irqrestore + 0x12 } IF !CC

JUMP

  10 Target : <0x001040d0> { __spin_unlock_irqrestore + 0xc }

     Source : <0x0000b2de> { ___raw_spin_unlock_asm + 0x16 } RTS

  11 Target : <0x0000b2dc> { ___raw_spin_unlock_asm + 0x14 }

     Source : <0x0000b124> { _put_core_lock + 0x18 } RTS

  12 Target : <0x0000b10c> { _put_core_lock + 0x0 }

     Source : <0x0000b252> { _end_lock_coherent + 0x20 } JUMP.S

  13 Target : <0x0000b232> { _end_lock_coherent + 0x0 }

     Source : <0x0000b2d8> { ___raw_spin_unlock_asm + 0x10 } CALL pcrel

  14 Target : <0x0000b2d0> { ___raw_spin_unlock_asm + 0x8 }

     Source : <0x0000b0ee> { _get_core_lock + 0x36 } RTS

  15 Target : <0x0000b0d6> { _get_core_lock + 0x1e }

     Source : <0x0000b0c8> { _get_core_lock + 0x10 } IF !CC JUMP

Stack info:

SP: [0x00175e08] <0x00175e08> /* kernel dynamic memory */

FP: (0x00175e08)

Memory from 0x00175e00 to 00176000

00175e00: 00175e08  00000000 [00000000]<0000adae> ffe05000  00000000

00000000  00000000

00175e20: 0000001f  00000000  00000000  00159248

<00152018><000337be> 03efe300  00000045

00175e40: 00152010  00000000  00000000  00000045  007dc000  00000006  00152010

00165028

00175e60:<00034bde> 001699e0  00000000  00003000  0064c3fc

<0001a740> 00152010  00000000

00175e80:<00005922> 00000045  001934b8  00000000  00000000  00000000

<0000a102> ffc00014

00175ea0: 001528ac  00152004  00174008  00000000  00000000  00000000  00001b4c

02002021

00175ec0: 0000c000  00000000  03144000  031510d0  00001b4c <00001b1c>

00000007  02002021

00175ee0: 03150a63  00093c58  03150a62  00093c58  00000000  00000000  00000000

00000000

00175f00: 00000000  00000000  00000000  00000000  00000000  00000000  00000000

00000000

00175f20: 00000000  00000000  00000000  00000000  00000000  00000000  00000000

00000000

00175f40: 00000000  000f4240  00176000 <00152018> 00001b08  001528ac

00152004  00155000

00175f60: 00155000  00000000  00174008  00003000  0064c3fc  007dc000  00000004

0000001f

00175f80: 00174000  0000ffff  0000ffff  00000000  00000006  00174008  00003000

0064c3fc

00175fa0:<00001a32> 00003000  0064c3fc  007dc000 <00176858>

0015fc8c  00192c04  ffffffc0

00175fc0: 00000000  0018f398  00151cfc  00000015  001760c8  00000001  00191df4

00176000

00175fe0: 00183c54  00000000  00000000  00000000  ffb00000  00000000  00000000

00000000

00176000: 0074f020

Return addresses in stack:

   frame  1 : <0x0000adae> { _ipi_handler + 0x11a }

    address : <0x00152018> /* kernel dynamic memory */

    address : <0x000337be> { _handle_IRQ_event + 0x4e }

    address : <0x00034bde> { _handle_percpu_irq + 0x4e }

    address : <0x0001a740> { _irq_enter + 0x18 }

    address : <0x00005922> { _asm_do_IRQ + 0x52 }

    address : <0x0000a102> { __common_int_entry + 0x72 }

    address : <0x00001b1c> { _default_idle + 0x14 }

    address : <0x00152018> /* kernel dynamic memory */

    address : <0x00001a32> { _cpu_idle + 0x22 }

    address : <0x00176858> { _start_kernel + 0x2e4 }

U-Boot 2008.10-svn1954 (ADI-2009R1-rc2) (Jul  1 2009 - 00:35:43)

 

CPU:   ADSP bf561-0.3 (Detected Rev: 0.5) (bypass boot)

Board: ADI BF561 EZ-Kit Lite board

       Support: http://blackfin.uclinux.org/

Clock: VCO: 600 MHz, Core: 600 MHz, System: 100 MHz

RAM:   64 MB

Flash:  8 MB

In:    serial

Out:   serial

Err:   serial

Net:   MAC:   00:E0:22:FE:BA:2A

Hit any key to stop autoboot:  0

bfin>

--

 

--- Robin Getz                                               2009-07-14 10:01:58

I think I agree with Mike - you should be able to run any application on any

core of SMP, and have traps work properly (not crash the kernel).

 

If it is - it is a SMP bug (which it is).

 

There seems to be only one problem - userspace sets the stack to a bad

location, which the 2nd core can't access.

 

Stack info:^M

SP: [0xffa10000] <0xffa10000> /* kernel dynamic memory */^M

Memory from 0xffa10000 to ffa10000^M

ffa10000:<0>^M

Double Fault^M

Kernel OOPS in progress^M

 

There is code that should catch this:

 

arch/blackfin/kernel/traps.c:show_stack()

 

        if (!access_ok(VERIFY_READ, stack, (unsigned int)endstack - (unsigned

int)stack)) {

                printk(KERN_NOTICE "Invalid stack pointer\n");

                return;

        }

 

Why did this pass? I thought with the access_ok fixes Mike made - it should be

OK?

 

-Robin

 

--- Sonic Zhang                                              2009-07-16 06:36:39

Fixed.

 

get_instruction() in traps.c should take care of different L1 SRAM region on

different core in SMP kernel.

 

access_ok() should not return true at any address if size == 0.

 

--- Vivi Li                                                  2009-08-06 04:14:24

This bug is ok. Close it.

 

 

 

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

 

File Name     File Type     File Size     Posted By

config.traps    application/octet-stream    26307    Vivi Li

Attachments

Outcomes