On 06/08/2012 03:51 PM, Fabio Visona wrote:

Not sure if this issue is related to Xenomai or not, however I hope somebody 
can give me an hint:
we are getting an error of the following form from time to time:


This is a I-pipe bug, caused by a spurious rescheduling over an IRQ context (blackfin is a bit special regarding this, to say the least). You may want to check whether 2.6.35.9-1.16-01 fixes the issue.

Example 1:

Illegal use of supervisor resource
<5>  - Attempted to use a Supervisor register or instruction from User mode.
<5>    Supervisor resources are registers and instructions that are reserved
<5>    for Supervisor use: Supervisor only registers, all MMRs, and Supervisor
<5>    only instructions.
Kernel OOPS in progress
Deferred Exception context
No Valid process in current context
return address: [0xffa002e6]; contents of:
0xffa002c0:  e331  949c  0030  3046  4d68  4f68  3210  a090
0xffa002d0:  4810  100e  e14a  001c  e10a  75e0  9110  0000
0xffa002e0:  0040  0020  9110 [0040] 6c66  0127  0010  e14a
0xffa002f0:  001c  e10a  75e0  9110  0040  6c66  0127  0010
ADSP-BF518-0.0(Detected 0.2) 400(MHz CCLK) 80(MHz SCLK) (mpu off)
Linux version 2.6.34.7-ADI-2010R1 (gcc version 4.3.5 (ADI-                      
                                                       2010R1-RC4) ) #220 Thu 
Jun 7 15:33:02 CEST 2012
SEQUENCER STATUS:               Not tainted
  SEQSTAT: 0000002e  IPEND: 0008  IMASK: ffff  SYSCFG: 0006
   EXCAUSE   : 0x2e
   physical IVG3 asserted :<0xffa0076c>  { _trap + 0x0 }
  RETE:<0x00000000>  /* Maybe null pointer? */
  RETN:<0x001d7fa4>  /* kernel dynamic memory (maybe user-space) */
  RETX:<0x00000480>  /* Maybe fixed code section */
  RETS:<0xffa002c4>  { _default_idle + 0x8 }
  PC  :<0xffa002e6>  { _default_idle + 0x2a }
DCPLB_FAULT_ADDR:<0x001c75e0>  /* kernel dynamic memory (maybe user-space) */
ICPLB_FAULT_ADDR:<0xffa002e6>  { _default_idle + 0x2a }
PROCESSOR STATE:
  R0 : 0000ffff    R1 : fffffffc    R2 : ffff0000    R3 : 00000001
  R4 : 00000000    R5 : 00000000    R6 : 00000000    R7 : ffa002bc
  P0 : 00000240    P1 : 001cd5e0    P2 : 001c75e0    P3 : 001d6008
  P4 : 001d6008    P5 : ffa002bc    FP : 001a126c    SP : 001d7ec8
  LB0: 000c5fa9    LT0: 000c5fa6    LC0: 00000000
  LB1: 01471f75    LT1: 01471f74    LC1: 00000000
  B0 : 001cd5e8    L0 : 00000000    M0 : 00000000    I0 : 0000000f
  B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 00000003
  B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000001
  B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 0000001f
A0.w: 00000005   A0.x: 00000000   A1.w: 00000005   A1.x: 00000000
USP : 001d8000  ASTAT: 02003064
Hardware Trace:
    0 Target :<0x00003f18>  { _trap_c + 0x0 }
      Source :<0xffa00700>  { _exception_to_level5 + 0xa4 } JUMP.L
    1 Target :<0xffa0065c>  { _exception_to_level5 + 0x0 }
      Source :<0xffa00510>  { _bfin_return_from_exception + 0x18 } RTX
    2 Target :<0xffa004f8>  { _bfin_return_from_exception + 0x0 }
      Source :<0xffa005b4>  { _ex_trap_c + 0x74 } JUMP.S
    3 Target :<0xffa00540>  { _ex_trap_c + 0x0 }
      Source :<0xffa007c6>  { _trap + 0x5a } JUMP (P4)
    4 Target :<0xffa0076c>  { _trap + 0x0 }
       FAULT :<0xffa002e6>  { _default_idle + 0x2a } STI R0
      Source :<0xffa002e4>  { _default_idle + 0x28 } R0 = [P2]
    5 Target :<0xffa002e4>  { _default_idle + 0x28 }
      Source :<0xffa00d18>  { __common_int_entry + 0xd0 } RTI
    6 Target :<0xffa00cb6>  { __common_int_entry + 0x6e }
      Source :<0xffa00982>  { _system_call + 0xee } RTS
    7 Target :<0xffa0097e>  { _system_call + 0xea }
      Source :<0xffa0096e>  { _system_call + 0xda } IF !CC JUMP pcrel
    8 Target :<0xffa00964>  { _system_call + 0xd0 }
      Source :<0xffa00954>  { _system_call + 0xc0 } IF !CC JUMP pcrel
    9 Target :<0xffa00952>  { _system_call + 0xbe }
      Source :<0xffa00942>  { _system_call + 0xae } IF !CC JUMP pcrel
   10 Target :<0xffa00930>  { _system_call + 0x9c }
      Source :<0xffa00962>  { _system_call + 0xce } JUMP.S
   11 Target :<0xffa00960>  { _system_call + 0xcc }
      Source :<0x0013f576>  { _schedule + 0x2c6 } RTS
   12 Target :<0x0013f566>  { _schedule + 0x2b6 }
      Source :<0x0013f616>  { _schedule + 0x366 } JUMP.S
   13 Target :<0x0013f616>  { _schedule + 0x366 }
      Source :<0x00032fe2>  { ___ipipe_unstall_root + 0x2a } RTS
   14 Target :<0x00032fb8>  { ___ipipe_unstall_root + 0x0 }
      Source :<0x0013f612>  { _schedule + 0x362 } JUMP.L
   15 Target :<0x0013f60c>  { _schedule + 0x35c }
      Source :<0x0013f40a>  { _schedule + 0x15a } IF CC JUMP pcrel
Kernel Stack
Stack info:
  SP: [0x001d7c74]<0x001d7c74>  /* kernel dynamic memory (maybe user-space) */
  FP: (0x001d7fac)
  Memory from 0x001d7c70 to 001d8000
001d7c70: 001d7d54 [00000400] 001c81e0  00011c36  001ae99c  0016ef7c  001ae9a6  
                                                                             
00000000
001d7c90: 0000000f  00044b83  00011b54  00011b54  6c756465  736e0065  001d7d4c  
                                                                             
001d7cb8
001d7cb0: 00000035  0000ffff  0000ffff  00009964  ffa002ac  00000001  0000000c  
                                                                             
00000002
001d7cd0: 00000000  0001076c  00000000  481007af  00651005  00000002  01004e00  
                                                                             
001d7fac
001d7cf0: 00007e82  001d7fac  0013f10c  001d7cf8  0016ef7c  00007e58  00000000  
                                                                             
001d8000
001d7d10: 00000028  001d7d4c  00000002  00007f0a  001d7dec  001d7de8  00006424  
                                                                             
001d7d28
001d7d30: 001d7fac  001d7d54  00000000  000063ec  00000033  00000000  00011c36  
                                                                             
00011c36
001d7d50: 00000001  3078303c  37643130  3e343763  202a2f20  6e72656b  64206c65  
                                                                             
6d616e79
001d7d70: 6d206369  726f6d65  6d282079  65627961  65737520  70732d72  29656361  
                                                                             
002f2a20
001d7d90: 002f2a20  001d7dec  ffa00300  ffa002e6  ffa00300  001d7ddc  001d7de4  
                                                                             
0000000f
001d7db0: 001d7dec  ffa002fe  00008988  001d7de4  001a126c  0013f10c  001d7ec8  
                                                                             
0016e91c
001d7dd0: 001d6008  00000008  00000004  00000000  001d7e18  30313030  00000000  
                                                                             
0000001d
001d7df0: 001a126c  000043d4  001d7ec8  00000013  001d6008  00000008  00000004  
                                                                             
00000000
001d7e10: 0000002e  001d7ec8  001d7c74  00000001  001d7e4c  011b0664  00030005  
                                                                             
001b0664
001d7e30: 00006ddc  001cd5e0  001b14a4  001b0664  00006844  ffffffff  00000001  
                                                                             
00000024
001d7e50: 00000000  00000000  001c6184  001b09a8  00000344  001d7e98<0013f400>  
                                                                             0014132c
001d7e70: 001d7e98  0013f616  001b0664  001b0664  00000000  00000000  001d6008  
                                                                             
001d6000
001d7e90: 001d6000  20000000  001a126c  ffa00960  ffa00704  001a3000  ffe02014  
                                                                             
00000008
001d7eb0: 0000002e  00000000  00000000  00000000  00000000  00000480  00000480  
                                                                             
00000008
001d7ed0: 0000002e  00000000  001d7fa4  00000480  ffa002e6  ffa002c4  0000ffff  
                                                                             
02003064
001d7ef0: 01471f75  000c5fa9  01471f74  000c5fa6  00000000  00000000  00000005  
                                                                             
00000000
001d7f10: 00000005  00000000  00000000  00000000  00000000  001cd5e8  00000000  
                                                                             
00000000
001d7f30: 00000000  00000000  00000000  00000000  00000000  00000000  0000001f  
                                                                             
00000001
001d7f50: 00000003  0000000f  001d8000  001a126c  ffa002bc  001d6008  001d6008  
                                                                             
001c75e0
001d7f70: 001cd5e0  00000240  ffa002bc  00000000  00000000  00000000  00000001  
                                                                             
ffff0000
001d7f90: fffffffc  0000ffff  0000ffff  00000240  00000006  ffa002bc  00000000 
(                                                                             
00000000)
001d7fb0:<ffa002b0>  00000000  001ef5a4  00000000  001d8000  001d8640  001c02c8 
                                                                              001a1004
001d7fd0: 00000000  001ef5a4  0016ca84  001766c8  8000003f  00000021  001d820c  
                                                                             
001ef5a4
001d7ff0: 001e1a46  00000000  00000000  ffb00000
Return addresses in stack:
     address :<0x0013f400>  { _schedule + 0x150 }
    frame  1 :<0xffa002b0>  { _cpu_idle + 0x30 }
Modules linked in: bfmd_xeno_acq bfmd_xeno_drv bfmd_xeno_tim bfmd_xeno_ser 
gptim                                                                           
  ers bfin_mac
Kernel panic - not syncing: Kernel exception
Hardware Trace:
Stack info:
  SP: [0x001d7de8]<0x001d7de8>  /* kernel dynamic memory (maybe user-space) */
  FP: (0x001d7fac)
  Memory from 0x001d7de0 to 001d8000
001d7de0: 001d7de8  001d6008 [0016e930] 0013efca  001d7ec8  0016e930  001a64be  
                                                                             
001a64be
001d7e00: 001a64be  001d7e18  000043e4  001d7ec8  00000008  001d7ec8  0000003f  
                                                                             
00000001
001d7e20: 001d7e4c  011b0664  00030005  001b0664  00006ddc  001cd5e0  001b14a4  
                                                                             
001b0664
001d7e40: 00006844  ffffffff  00000001  00000024  00000000  00000000  001c6184  
                                                                             
001b09a8
001d7e60: 00000344  001d7e98<0013f400>  0014132c  001d7e98  0013f616  001b0664  
                                                                             001b0664
001d7e80: 00000000  00000000  001d6008  001d6000  001d6000  20000000  001a126c  
                                                                             
ffa00960
001d7ea0: ffa00704  001a3000  ffe02014  00000008  0000002e  00000000  00000000  
                                                                             
00000000
001d7ec0: 00000000  00000480  00000480  00000008  0000002e  00000000  001d7fa4  
                                                                             
00000480
001d7ee0: ffa002e6  ffa002c4  0000ffff  02003064  01471f75  000c5fa9  01471f74  
                                                                             
000c5fa6
001d7f00: 00000000  00000000  00000005  00000000  00000005  00000000  00000000  
                                                                             
00000000
001d7f20: 00000000  001cd5e8  00000000  00000000  00000000  00000000  00000000  
                                                                             
00000000
001d7f40: 00000000  00000000  0000001f  00000001  00000003  0000000f  001d8000  
                                                                             
001a126c
001d7f60: ffa002bc  001d6008  001d6008  001c75e0  001cd5e0  00000240  ffa002bc  
                                                                             
00000000
001d7f80: 00000000  00000000  00000001  ffff0000  fffffffc  0000ffff  0000ffff  
                                                                             
00000240
001d7fa0: 00000006  ffa002bc  00000000 (00000000)<ffa002b0>  00000000  001ef5a4 
                                                                              00000000
001d7fc0: 001d8000  001d8640  001c02c8  001a1004  00000000  001ef5a4  0016ca84  
                                                                             
001766c8
001d7fe0: 8000003f  00000021  001d820c  001ef5a4  001e1a46  00000000  00000000  
                                                                             
ffb00000
Return addresses in stack:
     address :<0x0013f400>  { _schedule + 0x150 }
    frame  1 :<0xffa002b0>  { _cpu_idle + 0x30 }

Example 2:

Illegal use of supervisor resource
<5>  - Attempted to use a Supervisor register or instruction from User mode.
<5>    Supervisor resources are registers and instructions that are reserved
<5>    for Supervisor use: Supervisor only registers, all MMRs, and Supervisor
<5>    only instructions.
Kernel OOPS in progress
Deferred Exception context
No Valid process in current context
return address: [0xffa002e6]; contents of:
0xffa002c0:  e331  949c  0030  3046  4d68  4f68  3210  a090
0xffa002d0:  4810  100e  e14a  001c  e10a  75e0  9110  0000
0xffa002e0:  0040  0020  9110 [0040] 6c66  0127  0010  e14a
0xffa002f0:  001c  e10a  75e0  9110  0040  6c66  0127  0010
ADSP-BF518-0.0(Detected 0.2) 400(MHz CCLK) 80(MHz SCLK) (mpu off)
Linux version 2.6.34.7-ADI-2010R1 (gcc version 4.3.5 (ADI-2010R1-RC4) ) #220 
Thu Jun 7 15:33:02 CEST 2012
SEQUENCER STATUS:               Not tainted
  SEQSTAT: 0000002e  IPEND: 0008  IMASK: ffff  SYSCFG: 0006
   EXCAUSE   : 0x2e
   physical IVG3 asserted :<0xffa0076c>  { _trap + 0x0 }
  RETE:<0x00000000>  /* Maybe null pointer? */
  RETN:<0x001d7fa4>  /* kernel dynamic memory (maybe user-space) */
  RETX:<0x00000480>  /* Maybe fixed code section */
  RETS:<0xffa002c4>  { _default_idle + 0x8 }
  PC  :<0xffa002e6>  { _default_idle + 0x2a }
DCPLB_FAULT_ADDR:<0x001c75e0>  /* kernel dynamic memory (maybe user-space) */
ICPLB_FAULT_ADDR:<0xffa002e6>  { _default_idle + 0x2a }
PROCESSOR STATE:
  R0 : 0000ffff    R1 : fffffffc    R2 : 012046a0    R3 : 00000065
  R4 : 00000000    R5 : 00000000    R6 : 00000000    R7 : ffa002bc
  P0 : ffa00a04    P1 : 001c75e0    P2 : 001c75e0    P3 : 001d6008
  P4 : 001d6008    P5 : ffa002bc    FP : 001a126c    SP : 001d7ec8
  LB0: 000c5fa9    LT0: 000c5fa6    LC0: 00000000
  LB1: 01545faf    LT1: 01545fae    LC1: 00000000
  B0 : 00000000    L0 : 00000000    M0 : 00000004    I0 : 00000000
  B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 00000001
  B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000000
  B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 00000000
A0.w: 000002f1   A0.x: 00000000   A1.w: 00000015   A1.x: 00000000
USP : 001d8000  ASTAT: 02003064
Hardware Trace:
    0 Target :<0x00003f18>  { _trap_c + 0x0 }
      Source :<0xffa00700>  { _exception_to_level5 + 0xa4 } JUMP.L
    1 Target :<0xffa0065c>  { _exception_to_level5 + 0x0 }
      Source :<0xffa00510>  { _bfin_return_from_exception + 0x18 } RTX
    2 Target :<0xffa004f8>  { _bfin_return_from_exception + 0x0 }
      Source :<0xffa005b4>  { _ex_trap_c + 0x74 } JUMP.S
    3 Target :<0xffa00540>  { _ex_trap_c + 0x0 }
      Source :<0xffa007c6>  { _trap + 0x5a } JUMP (P4)
    4 Target :<0xffa0076c>  { _trap + 0x0 }
       FAULT :<0xffa002e6>  { _default_idle + 0x2a } STI R0
      Source :<0xffa002e4>  { _default_idle + 0x28 } R0 = [P2]
    5 Target :<0xffa002e4>  { _default_idle + 0x28 }
      Source :<0xffa00d18>  { __common_int_entry + 0xd0 } RTI
    6 Target :<0xffa00cb6>  { __common_int_entry + 0x6e }
      Source :<0xffa00982>  { _system_call + 0xee } RTS
    7 Target :<0xffa0097e>  { _system_call + 0xea }
      Source :<0xffa0096e>  { _system_call + 0xda } IF !CC JUMP pcrel
    8 Target :<0xffa00964>  { _system_call + 0xd0 }
      Source :<0xffa00954>  { _system_call + 0xc0 } IF !CC JUMP pcrel
    9 Target :<0xffa00952>  { _system_call + 0xbe }
      Source :<0xffa00942>  { _system_call + 0xae } IF !CC JUMP pcrel
   10 Target :<0xffa00930>  { _system_call + 0x9c }
      Source :<0xffa00950>  { _system_call + 0xbc } JUMP.S
   11 Target :<0xffa0094e>  { _system_call + 0xba }
      Source :<0x00006a42>  { ___ipipe_sync_root + 0x7e } RTS
   12 Target :<0x00006a22>  { ___ipipe_sync_root + 0x5e }
      Source :<0x00006a1c>  { ___ipipe_sync_root + 0x58 } IF CC JUMP pcrel (BP)
   13 Target :<0x00006a02>  { ___ipipe_sync_root + 0x3e }
      Source :<0x000380c4>  { _xnpod_schedule_deferred + 0x20 } RTS
   14 Target :<0x000380a4>  { _xnpod_schedule_deferred + 0x0 }
      Source :<0x00006a00>  { ___ipipe_sync_root + 0x3c } CALL (P1)
   15 Target :<0x000069e6>  { ___ipipe_sync_root + 0x22 }
      Source :<0x000069e0>  { ___ipipe_sync_root + 0x1c } IF CC JUMP pcrel (BP)
Kernel Stack
Stack info:
  SP: [0x001d7e54]<0x001d7e54>  /* kernel dynamic memory (maybe user-space) */
  FP: (0x001d7fac)
  Memory from 0x001d7e50 to 001d8000
001d7e50: 001c6000 [0000c762] 001c6000  001c6184  01029060  001d7e98  0013f566  
001f17e0
001d7e70: 001c6000  01029060  001b0664  001b0664  00000000  00000000  001d6008  
001d6000
001d7e90: 001d6000  001ce2e0  001a126c  ffa00960  ffa00704  001a3000  ffe02014  
00000008
001d7eb0: 0000002e  00000000  00000000  00000000  00000000  00000480  00000480  
00000008
001d7ed0: 0000002e  00000000  001d7fa4  00000480  ffa002e6  ffa002c4  0000ffff  
02003064
001d7ef0: 01545faf  000c5fa9  01545fae  000c5fa6  00000000  00000000  00000015  
00000000
001d7f10: 000002f1  00000000  00000000  00000000  00000000  00000000  00000000  
00000000
001d7f30: 00000000  00000000  00000000  00000000  00000000  00000004  00000000  
00000000
001d7f50: 00000001  00000000  001d8000  001a126c  ffa002bc  001d6008  001d6008  
001c75e0
001d7f70: 001c75e0  ffa00a04  ffa002bc  00000000  00000000  00000000  00000065  
012046a0
001d7f90: fffffffc  0000ffff  0000ffff  ffa00a04  00000006  ffa002bc  00000000 
(00000000)
001d7fb0:<ffa002b0>  00000000  001ef5a4  00000000  001d8000  001d8640  001c02c8 
 001a1004
001d7fd0: 00000000  001ef5a4  0016ca84  001766c8  8000003f  00000021  001d820c  
001ef5a4
001d7ff0: 001e1a46  00000000  00000000  ffb00000
Return addresses in stack:
    frame  1 :<0xffa002b0>  { _cpu_idle + 0x30 }
Modules linked in: bfmd_xeno_acq bfmd_xeno_drv bfmd_xeno_tim bfmd_xeno_ser 
gptimers bfin_mac
Kernel panic - not syncing: Kernel exception
Hardware Trace:
Stack info:
  SP: [0x001d7de8]<0x001d7de8>  /* kernel dynamic memory (maybe user-space) */
  FP: (0x001d7fac)
  Memory from 0x001d7de0 to 001d8000
001d7de0: 001d7de8  001d6008 [0016e930] 0013efca  001d7ec8  0016e930  001a64be  
001a64be
001d7e00: 001a64be  001d7e18  000043e4  001d7ec8  00000008  001d7ec8  0000003f  
00000001
001d7e20: 00000001  00000003  00030005  0102908c  001c7ca0  01029094  001c6000  
001c6184
001d7e40: 0000a4ec  001d7e64  0000c8e2  001c7ca0  001c6000  0000c762  001c6000  
001c6184
001d7e60: 01029060  001d7e98  0013f566  001f17e0  001c6000  01029060  001b0664  
001b0664
001d7e80: 00000000  00000000  001d6008  001d6000  001d6000  001ce2e0  001a126c  
ffa00960
001d7ea0: ffa00704  001a3000  ffe02014  00000008  0000002e  00000000  00000000  
00000000
001d7ec0: 00000000  00000480  00000480  00000008  0000002e  00000000  001d7fa4  
00000480
001d7ee0: ffa002e6  ffa002c4  0000ffff  02003064  01545faf  000c5fa9  01545fae  
000c5fa6
001d7f00: 00000000  00000000  00000015  00000000  000002f1  00000000  00000000  
00000000
001d7f20: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  
00000000
001d7f40: 00000000  00000004  00000000  00000000  00000001  00000000  001d8000  
001a126c
001d7f60: ffa002bc  001d6008  001d6008  001c75e0  001c75e0  ffa00a04  ffa002bc  
00000000
001d7f80: 00000000  00000000  00000065  012046a0  fffffffc  0000ffff  0000ffff  
ffa00a04
001d7fa0: 00000006  ffa002bc  00000000 (00000000)<ffa002b0>  00000000  001ef5a4 
 00000000
001d7fc0: 001d8000  001d8640  001c02c8  001a1004  00000000  001ef5a4  0016ca84  
001766c8
001d7fe0: 8000003f  00000021  001d820c  001ef5a4  001e1a46  00000000  00000000  
ffb00000
Return addresses in stack:
    frame  1 :<0xffa002b0>  { _cpu_idle + 0x30 }

The faulty code is trying to enable interrupts while in user mode.

Linux is 2.6.34.7, running on a Blackfin BF518 processor.
Xenomai version 2.5.3 (I know I should upgrade to 2.6.0).

We had similar errors very often when a mode switch occurred from rt mode to 
non-rt mode following a call to a real-time driver ioctl (.ioctl_rt in 
rtdm_device structure, with a NULL .ioclt_nrt counterpart) which returned 
-ENOSYS by mistake, instead of the correct 0 code.

Thank you
                                        
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai



--
Philippe.

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to