Advertisement
ormz

irq lock inversion dependency

Nov 15th, 2011
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.04 KB | None | 0 0
  1. [ 38.513580]
  2. [ 38.515075] =========================================================
  3. [ 38.521514] [ INFO: possible irq lock inversion dependency detected ]
  4. [ 38.527984] 3.2.0-rc1-11365-gdc71164-dirty #3
  5. [ 38.532318] ---------------------------------------------------------
  6. [ 38.538787] ksoftirqd/0/3 just changed the state of lock:
  7. [ 38.544189] (dm_timer_lock){..-...}, at: [<c003e78c>] omap_dm_timer_request_specific+0x14/0xbc
  8. [ 38.552917] but this lock took another, SOFTIRQ-unsafe lock in the past:
  9. [ 38.559631] (clocks_mutex){+.+...}
  10. [ 38.562957]
  11. [ 38.562957] and interrupts could create inverse lock ordering between them.
  12. [ 38.562957]
  13. [ 38.573059]
  14. [ 38.573089] other info that might help us debug this:
  15. [ 38.579620] Possible interrupt unsafe locking scenario:
  16. [ 38.579620]
  17. [ 38.586395] CPU0 CPU1
  18. [ 38.590942] ---- ----
  19. [ 38.595458] lock(clocks_mutex);
  20. [ 38.598785] local_irq_disable();
  21. [ 38.604705] lock(dm_timer_lock);
  22. [ 38.610656] lock(clocks_mutex);
  23. [ 38.616516] <Interrupt>
  24. [ 38.619140] lock(dm_timer_lock);
  25. [ 38.622711]
  26. [ 38.622741] *** DEADLOCK ***
  27. [ 38.622741]
  28. [ 38.628662] no locks held by ksoftirqd/0/3.
  29. [ 38.632843]
  30. [ 38.632843] the shortest dependencies between 2nd lock and 1st lock:
  31. [ 38.640716] -> (clocks_mutex){+.+...} ops: 412 {
  32. [ 38.645446] HARDIRQ-ON-W at:
  33. [ 38.648681] [<c008d770>] __lock_acquire+0x5ac/0xb54
  34. [ 38.657165] [<c008e344>] lock_acquire+0x9c/0x104
  35. [ 38.665344] [<c04806d4>] mutex_lock_nested+0x3c/0x2f4
  36. [ 38.673980] [<c03a9d18>] clk_get_sys+0x20/0xf0
  37. [ 38.682037] [<c0639450>] gpmc_init+0x7c/0x2b4
  38. [ 38.689971] [<c0008500>] do_one_initcall+0x34/0x17c
  39. [ 38.698425] [<c063028c>] kernel_init+0x8c/0x134
  40. [ 38.706542] [<c001516c>] kernel_thread_exit+0x0/0x8
  41. [ 38.714996] SOFTIRQ-ON-W at:
  42. [ 38.718231] [<c008d794>] __lock_acquire+0x5d0/0xb54
  43. [ 38.726684] [<c008e344>] lock_acquire+0x9c/0x104
  44. [ 38.734893] [<c04806d4>] mutex_lock_nested+0x3c/0x2f4
  45. [ 38.743530] [<c03a9d18>] clk_get_sys+0x20/0xf0
  46. [ 38.751525] [<c0639450>] gpmc_init+0x7c/0x2b4
  47. [ 38.759460] [<c0008500>] do_one_initcall+0x34/0x17c
  48. [ 38.767944] [<c063028c>] kernel_init+0x8c/0x134
  49. [ 38.776031] [<c001516c>] kernel_thread_exit+0x0/0x8
  50. [ 38.784484] INITIAL USE at:
  51. [ 38.787658] [<c008d5dc>] __lock_acquire+0x418/0xb54
  52. [ 38.796020] [<c008e344>] lock_acquire+0x9c/0x104
  53. [ 38.804138] [<c04806d4>] mutex_lock_nested+0x3c/0x2f4
  54. [ 38.812652] [<c03a9c7c>] clkdev_add+0x18/0x40
  55. [ 38.820526] [<c063d10c>] omap3xxx_clk_init+0x1d0/0x320
  56. [ 38.829162] [<c0633dc8>] setup_arch+0x7e8/0x8f8
  57. [ 38.837158] [<c06305f8>] start_kernel+0x80/0x304
  58. [ 38.845275] [<80008044>] 0x80008044
  59. [ 38.852264] }
  60. [ 38.854003] ... key at: [<c06ff5e0>] clocks_mutex+0x38/0x48
  61. [ 38.860198] ... acquired at:
  62. [ 38.863250] [<c008d6e8>] __lock_acquire+0x524/0xb54
  63. [ 38.868408] [<c008e344>] lock_acquire+0x9c/0x104
  64. [ 38.873291] [<c04806d4>] mutex_lock_nested+0x3c/0x2f4
  65. [ 38.878631] [<c03a9d18>] clk_get_sys+0x20/0xf0
  66. [ 38.883361] [<c003e628>] omap_dm_timer_prepare+0x1c/0x16c
  67. [ 38.889038] [<c003e7e8>] omap_dm_timer_request_specific+0x70/0xbc
  68. [ 38.895385] [<c0392838>] dsp_clk_enable+0xa4/0x12c
  69. [ 38.900451] [<c0391524>] dsp_peripheral_clk_ctrl+0x110/0x13c
  70. [ 38.906402] [<c03904e4>] bridge_brd_start+0x258/0x4e8
  71. [ 38.911712] [<c03a0288>] proc_start+0x88/0x114
  72. [ 38.916442] [<c03945d4>] api_call_dev_ioctl+0x8c/0x138
  73. [ 38.921874] [<c03a518c>] bridge_ioctl+0x94/0x158
  74. [ 38.926757] [<c01137bc>] do_vfs_ioctl+0x7c/0x5b4
  75. [ 38.931640] [<c0113d68>] sys_ioctl+0x74/0x7c
  76. [ 38.936187] [<c0014040>] ret_fast_syscall+0x0/0x3c
  77. [ 38.941253]
  78. [ 38.942749] -> (dm_timer_lock){..-...} ops: 15 {
  79. [ 38.947418] IN-SOFTIRQ-W at:
  80. [ 38.950561] [<c008d75c>] __lock_acquire+0x598/0xb54
  81. [ 38.958831] [<c008e344>] lock_acquire+0x9c/0x104
  82. [ 38.966857] [<c0481734>] _raw_spin_lock_irqsave+0x44/0x58
  83. [ 38.975646] [<c003e78c>] omap_dm_timer_request_specific+0x14/0xbc
  84. [ 38.985168] [<c0392838>] dsp_clk_enable+0xa4/0x12c
  85. [ 38.993347] [<c03929a8>] dsp_clock_enable_all+0xe8/0x104
  86. [ 39.002075] [<c039199c>] sm_interrupt_dsp+0x80/0x124
  87. [ 39.010437] [<c038e9e4>] io_dpc+0x530/0x6cc
  88. [ 39.018035] [<c005aea4>] tasklet_action+0x120/0x184
  89. [ 39.026306] [<c005b358>] __do_softirq+0xb4/0x214
  90. [ 39.034332] [<c005b58c>] run_ksoftirqd+0xd4/0x14c
  91. [ 39.042419] [<c0074960>] kthread+0x88/0x90
  92. [ 39.049926] [<c001516c>] kernel_thread_exit+0x0/0x8
  93. [ 39.058227] INITIAL USE at:
  94. [ 39.061279] [<c008d5dc>] __lock_acquire+0x418/0xb54
  95. [ 39.069488] [<c008e344>] lock_acquire+0x9c/0x104
  96. [ 39.077423] [<c0481734>] _raw_spin_lock_irqsave+0x44/0x58
  97. [ 39.086120] [<c0472dec>] omap_dm_timer_probe+0x240/0x2b8
  98. [ 39.094757] [<c02b3e78>] platform_drv_probe+0x18/0x1c
  99. [ 39.103118] [<c02b29dc>] driver_probe_device+0x98/0x1a0
  100. [ 39.111663] [<c02b2b78>] __driver_attach+0x94/0x98
  101. [ 39.119781] [<c02b21a4>] bus_for_each_dev+0x60/0x8c
  102. [ 39.127990] [<c02b1980>] bus_add_driver+0xa4/0x2ac
  103. [ 39.136077] [<c02b3164>] driver_register+0x78/0x184
  104. [ 39.144287] [<c0008500>] do_one_initcall+0x34/0x17c
  105. [ 39.152465] [<c063028c>] kernel_init+0x8c/0x134
  106. [ 39.160339] [<c001516c>] kernel_thread_exit+0x0/0x8
  107. [ 39.168518] }
  108. [ 39.170196] ... key at: [<c06d8734>] dm_timer_lock+0x10/0x20
  109. [ 39.176391] ... acquired at:
  110. [ 39.179351] [<c008b530>] check_usage_forwards+0x9c/0x108
  111. [ 39.184936] [<c008a508>] mark_lock+0x214/0x664
  112. [ 39.189666] [<c008d75c>] __lock_acquire+0x598/0xb54
  113. [ 39.194824] [<c008e344>] lock_acquire+0x9c/0x104
  114. [ 39.199707] [<c0481734>] _raw_spin_lock_irqsave+0x44/0x58
  115. [ 39.205383] [<c003e78c>] omap_dm_timer_request_specific+0x14/0xbc
  116. [ 39.211761] [<c0392838>] dsp_clk_enable+0xa4/0x12c
  117. [ 39.216827] [<c03929a8>] dsp_clock_enable_all+0xe8/0x104
  118. [ 39.222412] [<c039199c>] sm_interrupt_dsp+0x80/0x124
  119. [ 39.227630] [<c038e9e4>] io_dpc+0x530/0x6cc
  120. [ 39.232086] [<c005aea4>] tasklet_action+0x120/0x184
  121. [ 39.237243] [<c005b358>] __do_softirq+0xb4/0x214
  122. [ 39.242126] [<c005b58c>] run_ksoftirqd+0xd4/0x14c
  123. [ 39.247131] [<c0074960>] kthread+0x88/0x90
  124. [ 39.251495] [<c001516c>] kernel_thread_exit+0x0/0x8
  125. [ 39.256652]
  126. [ 39.258148]
  127. [ 39.258148] stack backtrace:
  128. [ 39.262512] [<c001ba18>] (unwind_backtrace+0x0/0xf4) from [<c008b424>] (print_irq_inversion_bug+0x1f4/0x264)
  129. [ 39.272369] [<c008b424>] (print_irq_inversion_bug+0x1f4/0x264) from [<c008b530>] (check_usage_forwards+0x9c/0x108)
  130. [ 39.282745] [<c008b530>] (check_usage_forwards+0x9c/0x108) from [<c008a508>] (mark_lock+0x214/0x664)
  131. [ 39.291900] [<c008a508>] (mark_lock+0x214/0x664) from [<c008d75c>] (__lock_acquire+0x598/0xb54)
  132. [ 39.300598] [<c008d75c>] (__lock_acquire+0x598/0xb54) from [<c008e344>] (lock_acquire+0x9c/0x104)
  133. [ 39.309478] [<c008e344>] (lock_acquire+0x9c/0x104) from [<c0481734>] (_raw_spin_lock_irqsave+0x44/0x58)
  134. [ 39.318908] [<c0481734>] (_raw_spin_lock_irqsave+0x44/0x58) from [<c003e78c>] (omap_dm_timer_request_specific+0x14/0xbc)
  135. [ 39.329772] [<c003e78c>] (omap_dm_timer_request_specific+0x14/0xbc) from [<c0392838>] (dsp_clk_enable+0xa4/0x12c)
  136. [ 39.340057] [<c0392838>] (dsp_clk_enable+0xa4/0x12c) from [<c03929a8>] (dsp_clock_enable_all+0xe8/0x104)
  137. [ 39.349548] [<c03929a8>] (dsp_clock_enable_all+0xe8/0x104) from [<c039199c>] (sm_interrupt_dsp+0x80/0x124)
  138. [ 39.359222] [<c039199c>] (sm_interrupt_dsp+0x80/0x124) from [<c038e9e4>] (io_dpc+0x530/0x6cc)
  139. [ 39.367767] [<c038e9e4>] (io_dpc+0x530/0x6cc) from [<c005aea4>] (tasklet_action+0x120/0x184)
  140. [ 39.376220] [<c005aea4>] (tasklet_action+0x120/0x184) from [<c005b358>] (__do_softirq+0xb4/0x214)
  141. [ 39.385101] [<c005b358>] (__do_softirq+0xb4/0x214) from [<c005b58c>] (run_ksoftirqd+0xd4/0x14c)
  142. [ 39.393798] [<c005b58c>] (run_ksoftirqd+0xd4/0x14c) from [<c0074960>] (kthread+0x88/0x90)
  143. [ 39.402008] [<c0074960>] (kthread+0x88/0x90) from [<c001516c>] (kernel_thread_exit+0x0/0x8)
  144.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement