mutex死锁分析

crash_arm64> ps -l | grep UN
[  2160787611102] [UN]  PID: 1      TASK: ffffff80bb931d80  CPU: 6   COMMAND: "init"
[    35202770595] [UN]  PID: 1008   TASK: ffffff8067f03b00  CPU: 1   COMMAND: "thermald"
[    35173575557] [UN]  PID: 1011   TASK: ffffff8066d31d80  CPU: 0   COMMAND: "charged"
[    29518488925] [UN]  PID: 578    TASK: ffffff80a556bb00  CPU: 1   COMMAND: "health@2.1-serv"
[    16102199938] [UN]  PID: 246    TASK: ffffff80b4fe49c0  CPU: 2   COMMAND: "kworker/u16:8"
[    16102126591] [UN]  PID: 243    TASK: ffffff80b4fe0ec0  CPU: 1   COMMAND: "kworker/u16:5"


crash_arm64> bt 1
PID: 1      TASK: ffffff80bb931d80  CPU: 6   COMMAND: "init"
 #0 [ffffffc01006ba30] __switch_to at ffffffc010229c14
 #1 [ffffffc01006ba80] __schedule at ffffffc0110097ac
 #2 [ffffffc01006bae0] schedule at ffffffc011009dc8
 #3 [ffffffc01006bb00] schedule_preempt_disabled at ffffffc011009e64
 #4 [ffffffc01006bb50] __mutex_lock at ffffffc01100b998
 #5 [ffffffc01006bba0] __mutex_lock_slowpath at ffffffc01100afdc
 #6 [ffffffc01006bbb0] mutex_lock at ffffffc01100afac
 #7 [ffffffc01006bbd0] sc27xx_fgu_set_property$88b22dda440bce0a05d7d0c62e5dc850 at ffffffc00998c51c [sc27xx_fuel_gauge]
 #8 [ffffffc01006bc20] power_supply_set_property at ffffffc010b01190
 #9 [ffffffc01006bc40] charger_manager_shutdown$d53e64e453665dd43ff15e344308be70 at ffffffc00990bea0 [charger_manager]
#10 [ffffffc01006bc80] platform_drv_shutdown$104c53a728511f9c3c65153306e9a61d at ffffffc010916edc
#11 [ffffffc01006bca0] device_shutdown at ffffffc01090dfac
#12 [ffffffc01006bd00] kernel_restart at ffffffc0102c08e4
#13 [ffffffc01006be30] __arm64_sys_reboot at ffffffc0102c0d4c
#14 [ffffffc01006be70] el0_svc_common at ffffffc01023b8ac
#15 [ffffffc01006beb0] el0_svc_handler at ffffffc01023b7dc
#16 [ffffffc01006bff0] el0_svc at ffffffc0100a66c4
     PC: 0000007fa6905020   LR: 0000005563258330   SP: 0000007fc45b73f0
    X29: 0000007fc45b7410  X28: 6f6974616d696e61  X27: 0000007fc45b7541
    X26: b400007de67a5eb8  X25: 0000000000001770  X24: 0000005563149c62
    X23: 0000000000000000  X22: 0000000000000016  X21: 0000007fae6b67f8
    X20: 00000000dead0003  X19: b400007de67a5eb8  X18: 0000007fad57e000
    X17: 0000007fa6905000  X16: 0000005563314d70  X15: 0000000000000000
    X14: 0000000000000010  X13: 00000000e7094360  X12: 0000000000000003
    X11: 0000000000000040  X10: 0000007dc6789000   X9: 0000000000000000
     X8: 000000000000008e   X7: 000000000000000a   X6: 000000000000000a
     X5: 000000000000000a   X4: 0000007fc45b6e32   X3: b400007de67a5eb9
     X2: 00000000a1b2c3d4   X1: 0000000028121969   X0: 00000000fee1dead
    ORIG_X0: 00000000fee1dead  SYSCALLNO: 8e  PSTATE: 40001000


    
crash_arm64> bt 1008
PID: 1008   TASK: ffffff8067f03b00  CPU: 1   COMMAND: "thermald"
 #0 [ffffffc019beb7c0] __switch_to at ffffffc010229c14
 #1 [ffffffc019beb810] __schedule at ffffffc0110097ac
 #2 [ffffffc019beb870] schedule at ffffffc011009dc8
 #3 [ffffffc019beb890] schedule_preempt_disabled at ffffffc011009e64
 #4 [ffffffc019beb8e0] __mutex_lock at ffffffc01100b998
 #5 [ffffffc019beb930] __mutex_lock_slowpath at ffffffc01100afdc
 #6 [ffffffc019beb940] mutex_lock at ffffffc01100afac
 #7 [ffffffc019beb970] sc27xx_fgu_get_property$88b22dda440bce0a05d7d0c62e5dc850 at ffffffc00998bee8 [sc27xx_fuel_gauge]
 #8 [ffffffc019beb9e0] power_supply_get_property at ffffffc010b010f0
 #9 [ffffffc019beba00] is_batt_present at ffffffc009906288 [charger_manager]
#10 [ffffffc019beba50] is_charging at ffffffc0099097bc [charger_manager]
#11 [ffffffc019bebad0] charger_get_property$d53e64e453665dd43ff15e344308be70 at ffffffc00990dd88 [charger_manager]
#12 [ffffffc019bebb40] power_supply_get_property at ffffffc010b010f0
#13 [ffffffc019bebb60] power_supply_show_property$585d20bcb1be35037d56665a6c5c3de1 at ffffffc010b0243c
#14 [ffffffc019bebbd0] dev_attr_show$f317772e3afc67365624a70905d4b42c at ffffffc01090f15c
#15 [ffffffc019bebbf0] sysfs_kf_seq_show$940b66a61121dfe2d682373570bf778e at ffffffc010587810
#16 [ffffffc019bebc50] kernfs_seq_show$321396c22fae547781b1d29c056a00a9 at ffffffc0105868b4
#17 [ffffffc019bebc70] seq_read at ffffffc0104ff4f8
#18 [ffffffc019bebce0] kernfs_fop_read$321396c22fae547781b1d29c056a00a9 at ffffffc010585734
#19 [ffffffc019bebdb0] __vfs_read at ffffffc0104c9538
#20 [ffffffc019bebdd0] vfs_read at ffffffc0104c9850
#21 [ffffffc019bebe20] ksys_read at ffffffc0104c9f58
#22 [ffffffc019bebe60] __arm64_sys_read at ffffffc0104c9fe0
#23 [ffffffc019bebe70] el0_svc_common at ffffffc01023b8ac
#24 [ffffffc019bebeb0] el0_svc_handler at ffffffc01023b7dc
#25 [ffffffc019bebff0] el0_svc at ffffffc0100a66c4
     PC: 00000071e443bf88   LR: 00000061620cfd5c   SP: 0000007fefa6fb50
    X29: 0000007fefa6fba0  X28: b400007124007168  X27: 00000061620d29cc
    X26: b4000070c3fe7c30  X25: 00000061620c07f3  X24: 0000000000000000
    X23: b400006fe3ff30d0  X22: 0000007fefa6fb50  X21: 00000071ecc44010
    X20: b400007003fe5410  X19: 0000000000000005  X18: 00000071eda86000
    X17: 00000071e443bf80  X16: 00000061620d18f0  X15: 0000000000000000
    X14: 0000000000000010  X13: 0000007fefa6f0fa  X12: 0000000000000001
    X11: 00000071e43c4a82  X10: 0000000000000000   X9: 0b7d208cc4bd1b27
     X8: 000000000000003f   X7: 7f7f7f7f7f7f7f7f   X6: fefefefefefefeff
     X5: 8080808080808080   X4: 0000000000000000   X3: 0000000000000000
     X2: 0000000000000040   X1: 0000007fefa6fb50   X0: 0000000000000005
    ORIG_X0: 0000000000000005  SYSCALLNO: 3f  PSTATE: 60001000


crash_arm64> bt 1011
PID: 1011   TASK: ffffff8066d31d80  CPU: 0   COMMAND: "charged"
 #0 [ffffffc019bfb880] __switch_to at ffffffc010229c14
 #1 [ffffffc019bfb8d0] __schedule at ffffffc0110097ac
 #2 [ffffffc019bfb930] schedule at ffffffc011009dc8
 #3 [ffffffc019bfb950] schedule_preempt_disabled at ffffffc011009e64
 #4 [ffffffc019bfb9a0] __mutex_lock at ffffffc01100b998
 #5 [ffffffc019bfb9f0] __mutex_lock_slowpath at ffffffc01100afdc
 #6 [ffffffc019bfba00] mutex_lock at ffffffc01100afac
 #7 [ffffffc019bfba30] sc27xx_fgu_get_property$88b22dda440bce0a05d7d0c62e5dc850 at ffffffc00998bee8 [sc27xx_fuel_gauge]
 #8 [ffffffc019bfbaa0] power_supply_get_property at ffffffc010b010f0
 #9 [ffffffc019bfbad0] charger_get_property$d53e64e453665dd43ff15e344308be70 at ffffffc00990de58 [charger_manager]
#10 [ffffffc019bfbb40] power_supply_get_property at ffffffc010b010f0
#11 [ffffffc019bfbb60] power_supply_show_property$585d20bcb1be35037d56665a6c5c3de1 at ffffffc010b0243c
#12 [ffffffc019bfbbd0] dev_attr_show$f317772e3afc67365624a70905d4b42c at ffffffc01090f15c
#13 [ffffffc019bfbbf0] sysfs_kf_seq_show$940b66a61121dfe2d682373570bf778e at ffffffc010587810
#14 [ffffffc019bfbc50] kernfs_seq_show$321396c22fae547781b1d29c056a00a9 at ffffffc0105868b4
#15 [ffffffc019bfbc70] seq_read at ffffffc0104ff4f8
#16 [ffffffc019bfbce0] kernfs_fop_read$321396c22fae547781b1d29c056a00a9 at ffffffc010585734
#17 [ffffffc019bfbdb0] __vfs_read at ffffffc0104c9538
#18 [ffffffc019bfbdd0] vfs_read at ffffffc0104c9850
#19 [ffffffc019bfbe20] ksys_read at ffffffc0104c9f58
#20 [ffffffc019bfbe60] __arm64_sys_read at ffffffc0104c9fe0
#21 [ffffffc019bfbe70] el0_svc_common at ffffffc01023b8ac
#22 [ffffffc019bfbeb0] el0_svc_handler at ffffffc01023b7dc
#23 [ffffffc019bfbff0] el0_svc at ffffffc0100a66c4
     PC: 0000007858c7ef88   LR: 000000590cb4934c   SP: 00000075c8afbc20
    X29: 00000075c8afbc40  X28: 000000590cb48d04  X27: b400007788b8ac58
    X26: 000000590cb48962  X25: 000000590cb48cd8  X24: 00000075c8afbd00
    X23: 0000000000000004  X22: 0000000062c9874d  X21: 000000590cb48a4c
    X20: 000000590cb488c8  X19: 000000590cb4890f  X18: 00000075c8016000
    X17: 0000007858c7ef80  X16: 000000590cb4a2f8  X15: 0000000000000000
    X14: 0000000000000101  X13: 000000003f47a8cd  X12: 0000ffff00000eff
    X11: 00000000000003f3  X10: 00000000000003f3   X9: ffcb4b5da4a67caf
     X8: 000000000000003f   X7: 0000000062c9874d   X6: 0000000062c9874d
     X5: 0000000000000008   X4: 00000075c8afbc30   X3: 0000000000000000
     X2: 0000000000000004   X1: 00000075c8afbc28   X0: 0000000000000004
    ORIG_X0: 0000000000000004  SYSCALLNO: 3f  PSTATE: 60001000


    

    crash_arm64> bt 246
PID: 246    TASK: ffffff80b4fe49c0  CPU: 2   COMMAND: "kworker/u16:8"
 #0 [ffffffc012b33720] __switch_to at ffffffc010229c14
 #1 [ffffffc012b33770] __schedule at ffffffc0110097ac
 #2 [ffffffc012b337d0] schedule at ffffffc011009dc8
 #3 [ffffffc012b337f0] schedule_preempt_disabled at ffffffc011009e64
 #4 [ffffffc012b33840] __mutex_lock at ffffffc01100b998
 #5 [ffffffc012b33890] __mutex_lock_slowpath at ffffffc01100afdc
 #6 [ffffffc012b338a0] mutex_lock at ffffffc01100afac
 #7 [ffffffc012b338d0] sc27xx_fgu_get_property$88b22dda440bce0a05d7d0c62e5dc850 at ffffffc00998bee8 [sc27xx_fuel_gauge]
 #8 [ffffffc012b33940] power_supply_get_property at ffffffc010b010f0
 #9 [ffffffc012b33960] rt9471_charger_stop_charge at ffffffc0099a7198 [rt9471_charger]
#10 [ffffffc012b33ba0] rt9471_charger_usb_set_property$ffe1b4e6d23e367e0a866e046d2a2623 at ffffffc0099a7fa0 [rt9471_charger]
#11 [ffffffc012b33c20] power_supply_set_property at ffffffc010b01190
#12 [ffffffc012b33c40] try_charger_enable_by_psy at ffffffc009906d80 [charger_manager]
#13 [ffffffc012b33ca0] try_charger_enable at ffffffc009905d0c [charger_manager]
#14 [ffffffc012b33d10] _cm_monitor at ffffffc009905964 [charger_manager]
#15 [ffffffc012b33d60] cm_monitor_poller$d53e64e453665dd43ff15e344308be70 at ffffffc009904f38 [charger_manager]
#16 [ffffffc012b33d90] process_one_work at ffffffc0102b5338
#17 [ffffffc012b33e00] worker_thread$f31e2447a3fdcb60f4b193f95acd647c at ffffffc0102b590c
#18 [ffffffc012b33e60] kthread$bdfae7274f17a094019e62b74615f335 at ffffffc0102bb8c8
#19 [ffffffc012b33ec0] ret_from_fork at ffffffc0100a67ec


crash_arm64> bt 243
PID: 243    TASK: ffffff80b4fe0ec0  CPU: 1   COMMAND: "kworker/u16:5"
 #0 [ffffffc012b1b880] __switch_to at ffffffc010229c14
 #1 [ffffffc012b1b8d0] __schedule at ffffffc0110097ac
 #2 [ffffffc012b1b930] schedule at ffffffc011009dc8
 #3 [ffffffc012b1b950] schedule_preempt_disabled at ffffffc011009e64
 #4 [ffffffc012b1b9a0] __mutex_lock at ffffffc01100b998
 #5 [ffffffc012b1b9f0] __mutex_lock_slowpath at ffffffc01100afdc
 #6 [ffffffc012b1ba00] mutex_lock at ffffffc01100afac
 #7 [ffffffc012b1ba20] rt9471_charger_usb_get_property$ffe1b4e6d23e367e0a866e046d2a2623 at ffffffc0099a78dc [rt9471_charger]
 #8 [ffffffc012b1ba80] power_supply_get_property at ffffffc010b010f0
 #9 [ffffffc012b1bab0] sc27xx_fgu_capacity_calibration at ffffffc00998df08 [sc27xx_fuel_gauge]
#10 [ffffffc012b1bb50] sc27xx_fgu_get_capacity at ffffffc00998d890 [sc27xx_fuel_gauge]
#11 [ffffffc012b1bbd0] sc27xx_fgu_get_property$88b22dda440bce0a05d7d0c62e5dc850 at ffffffc00998c2b4 [sc27xx_fuel_gauge]
#12 [ffffffc012b1bc40] power_supply_get_property at ffffffc010b010f0
#13 [ffffffc012b1bd20] cm_batt_works$d53e64e453665dd43ff15e344308be70 at ffffffc00990c570 [charger_manager]
#14 [ffffffc012b1bd90] process_one_work at ffffffc0102b5338
#15 [ffffffc012b1be00] worker_thread$f31e2447a3fdcb60f4b193f95acd647c at ffffffc0102b590c
#16 [ffffffc012b1be60] kthread$bdfae7274f17a094019e62b74615f335 at ffffffc0102bb8c8
#17 [ffffffc012b1bec0] ret_from_fork at ffffffc0100a67ec


 
crash_arm64> struct mutex ffffff80b902b110 -x
struct mutex {
  owner = {
    counter = 0xffffff80b4fe49c1
  },
  wait_lock = {
    {
      rlock = {
        raw_lock = {
          {
            val = {
              counter = 0x0
            },
            {
              locked = 0x0,
              pending = 0x0
            },
            {
              locked_pending = 0x0,
              tail = 0x0
            }
          }
        }
      }
    }
  },
  osq = {
    tail = {
      counter = 0x0
    }
  },
  wait_list = {
    next = 0xffffffc012b1b978,
    prev = 0xffffffc01bb439c8
  }
}


crash_arm64> struct task_struct 0xffffff80b4fe49c0 | grep pid
  pid = 246,


crash_arm64_v8.0.1_unisoc> search -t ffffff80b902b110
PID: 243    TASK: ffffff80b4fe0ec0  CPU: 1   COMMAND: "kworker/u16:5"
ffffffc012b1b960: ffffff80b902b110
ffffffc012b1b9e8: ffffff80b902b110

PID: 246    TASK: ffffff80b4fe49c0  CPU: 2   COMMAND: "kworker/u16:8"
#9 [ffffffc012b33960] rt9471_charger_stop_charge at ffffffc0099a7198 [rt9471_charger]
    ffffffc012b33960: ffffffc012b33ba0 ffffffc0099a7fa4 
    ffffffc012b33970: ffffffc012b33c30 0000000000000000 
    ffffffc012b33980: ffffff80b902b080 ffffff80b902b110 

结论:
process 246存在自锁,mutex lock了两次,请check自己的充电驱动。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值