This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM3352:插入/删除 SDCard 时出现软锁定问题

Guru**** 2595805 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/586632/linux-am3352-soft-lockup-issues-when-inserting-removing-sdcard

器件型号:AM3352

工具/软件:Linux

您好!

我们在测试顺序 SDCard 插入和移除时检测到了几种软锁定情况。 问题是随机发生的、堆栈跟踪总是显示不同的内容、因此很难跟踪问题的原因。 请注意、该问题与任何 I/O 无关、只需插入/移除卡即可重现。

我们当前的内核版本是3.2.61。

以下是我们收到的2条内核操作消息:

Oops 1:

[2424.068061]错误:软锁定- CPU#0卡在22秒! [交换器:0]
[2424.074308]链接到:Unifi_SDIO (O) MMC_BLOCK OMAP_hsmmc MMC_CORE smsc95xx usbnet FTDI_SIO usbserial g_zero ti81xx nop_usb_xceiv musb_hdrc USB_storage usbcore 的模块
[2424.090147]
[2424.091713] PID:0、通信:swapper
[2424.096396] CPU:0被污染:G O (3.2.61 #1)
[2424.102923] PC 位于_do_softirq+0x7c/0x148
[2424.107421] LR 位于__do_softirq+0x50/0x148
[2424.1119191919] PC:[ ] LR:[ ] PSR:20060113
[2424.111926] sp:c0303f08 IP:00000040 FP:00000000
[2424.124010] R10:00000000 R9:00000000 R8:c031e058
[2424.129511] r7:c0302000 R6:00000000 R5:c033df00 R4:00000002
[2424.136383] r3:c033de80 r2:c0302000 r1:00010001 r0:c033de80
[2424.143258]标志:模式 SVC_32 ISA ARM 段内核上 FIQ 上的 nzCv IRQ
[2424.150955]控制:10c5387d 表:81a8c019 DAC:00000015
[2424.157050][ ](RELEDELOG_backtrace+0x0/0xec)从[ ](安全装置定时器_fn+0x120/0x148)
[2424.166881][ ](Watchdog_timer_fn+0x120/0x148)、从[ ](_run_hrtimer.isra.37+0x58/0x10c)
[2424.177334][ ](_run_hrtimer.isra.37+0x58/0x10c)、来自[ ](hrtimer_interrupt+0x104/0x2fc)
[2424.187796][ ](hrtimer_interrupt+0x104/0x2fc)、来自[ ](OMAP2_gp_timer_interrupt+0x2C/0x34)
[2424.198437][ ](OMAP2_gp_timer_interrupt+0x2C/0x34)、来自[ ](handle_irq_event_perpu + b0/0x178)
[2424.209531][ ](handle_irq_event_perpu+b0/0x178)从[ ](handle_IRQ_EVENT+0x50/0x78)
[2424.219893][ ](handle_irq_event+0x50/0x78)、从[ ](handle_level_IRQ+0x8c/0xFC)
[2424.229522][ ](handle_level_IRQ+0x8c/0xFC)、来自[ ](generic_handle_IRQ+0x2C/0x3c)
[2424.23934][ ](generic_handle_IRQ+0x2C/0x3c)从[ ](handle_IRQ+0x38/0x84)
[2424.248602] ](handle_IRQ+0x38/0x84)从[ ](OMAP3_INTC_Handle_IRQ+0x7c/0x80)
[2424.258136][ ](OMAP3_INTC_Handle_IRQ+0x7c/0x80)、来自[ ](_IRQ_Svc+0x40/0x70)
[2424.267571]异常堆栈(0xc0303ec0至0xc0303f08)
[2424.272896] 3ec0:c033de80 00010001 c0302000 c033de80 00000002 c033df00 00000000 c0302000
[2424.281512] 3e0:c031e058 00000000 00000000 00000000 00000040 c0303f08 c0037578 c00375a4
[2424.290123] 3f00:20060113 ffffff
[2424.293803][ ](_IRQ_Svc+0x40/0x70)从[ ](__do_softirq+0x7c/0x148)
[2424.302516][ ](__do_softirq+0x7c/0x148)从[ ](IRQ_EXIT+0x98/0x9C)
[2424.311135][ ](IRQ_EXIT+0x98/0x9C)从[ ](handle_IRQ+0x3c/0x84)
[2424.319480][ ](handle_IRQ+0x3c/0x84)从[ ](OMAP3_INTC_Handle_IRQ+0x7c/0x80)
[2424.329013][ ](OMAP3_INTC_Handle_IRQ+0x7c/0x80)、来自[ ](_IRQ_Svc+0x40/0x70)
[2424.338445]异常堆栈(0xc0303f70至0xc0303fb8)
[2424.343763] 3f60:0007789d 00000000 0007789d 00000000
[2424.352379] 3f80:c0302000 c032afc4 c0306e68 c03cd440 c02f9fa8 413fc082 00000000 00000000
[2424.360993] 3fa0:a6aa47 c0303fb8 c000e918 c000e91c 60060013 ffffff
[2424.367967][ ](_IRQ_Svc+0x40/0x70)从[ ](DEFAULT_IDEL+0x24/0x28)
[2424.376589][ ](DEFAULT_IDEL+0x24/0x28)从[ ](CPU_IDEL+0x7c/0xa4)
[2424.385122][ ](CPU_IDEL+0x7c/0xa4)从[ ](start_kernel+0x260/0x26c)

Oops 2:

[528.093248]错误:软锁定- CPU#0卡在22秒! [时:2010]
[528.099317]链接到的模块:Unifi_SDIO (O) MMC_BLOCK OMAP_hsmmc MMC_CORE smsc95xx usbnet FTDI_SIO usbserial g_zero ti81xx nop_usb_xceiv musb_hdrc USB_storage usbcore
[528.115167]
[528.116735] PID:2010、通信:短
[528.121694] CPU:0被污染:G O (3.2.61 #1)
[528.128228] PC 位于__do_softirq+0x84/0x250
[528.132728] LR 位于_do_softirq+0x6c/0x250
[528.137227] PC:[ ] LR:[ ] PSR:20060113
[528.137236] sp:c3423c58 IP:c3423c58 fp:c3423c4.
[528.149322] R10:00000000 R9:00100100 R8:00000000
[528.154823] r7:fa200000 r6:c03f6240 r5:00000002 r4:00000d20
[528.1699] r3:c03f61c0 r2:c03d0d20 r1:c3016180 r0:c03f61c0
[528.168574]标志:nzCv 在模式 SVC_32 ISA ARM 段用户上 FIQ 上的 IRQ
[528.176090]控制:10c5387d 表:81b3c019 DAC:00000015
[528.182193][ ](RELEDELOG_backtrace+0x0/0xf8)从[ ](dump_stack+0x20/0x24)
[528.191199年][ ](dump_stack+0x20/0x24)从[ ](show_regs+0x54/0x58)
[528.199651][ ](show_regs+0x54/0x58)、来自[ ](安全装置定时器_fn+0x130/0x158)
[528.208925][ ](Watchdog_timer_fn+0x130/0x158)从[ ](_run_hrtimer+0x94/0x260)
[528.218652][ ](_run_hrtimer+0x94/0x260)从[ ](hrtimer_interrupt+0x120/0x31c)
[528.228387][ ](hrtimer_interrupt+0x120/0x31c)、来自[ ](OMAP2_gp_timer_interrupt+0x3c/0x44)
[528.239032][ ](OMAP2_gp_timer_interrupt+0x3c/0x44)、来自[ ](handle_irq_event_perpu + 0x64/0x2bc)
[528.250130][ ](handle_irq_event_perpu+0x64/0x2bc)、来自[ ](handle_IRQ_EVENT+0x60/0x88)
[528.260495][ ](handle_irq_event+0x60/0x88)、来自[ ](handle_level_IRQ+0x9C/0x10c)
[528.270219][ ](handle_level_IRQ+0x9C/0x10c)从[ ](generic_handle_IRQ+0x3c/0x4c)
[528.280125][ ](generic_handle_IRQ+0x3c/0x4c)、来自[ ](handle_IRQ+0x48/0x94)
[528.289392][ ](handle_IRQ+0x48/0x94)从[ ](OMAP3_INTC_Handle_IRQ+0x8c/0x90)
[528.298932][ ](OMAP3_INTC_Handle_IRQ+0x8c/0x90)、来自[ ](_IRQ_Svc+0x40/0x70)
[528.308372]异常堆栈(0xc3423c10至0xc3423c58)
[528.313697] 3c00:c03f61c0 c3016180 c03d0d20 c03f61c0
[528.322318] 3c20:00000d20 00000002 c03f6240 fa200000 00000000 0010000000000 c3423ca.
[528.330938] 3c40:c3423c58 c3423c58 c0040028 c0040040 20060113 ffff
[528.337915][ ](_IRQ_Svc+0x40/0x70)从[ ](__do_softirq+0x84/0x250)
[528.346635][ ](__do_softirq+0x84/0x250)从[ ](IRQ_EXIT+0xa8/0xac)
[528.355261][ ](IRQ_EXIT+0xa8/0xac)、来自[ ](handle_IRQ+0x4c/0x94)
[528.363611] ](handle_IRQ+0x4c/0x94)从[ ](OMAP3_INTC_Handle_IRQ+0x8c/0x90)
[528.373148][ ](OMAP3_INTC_Handle_IRQ+0x8c/0x90)、来自[ ](_IRQ_Svc+0x40/0x70)
[528.382586]异常堆栈(0xc3423d00至0xc3423d48)
[528.387912] 3d00:c3236c4 402ca000 00000000 c3223f94 c1a599f0 c3223f80 c1a59b28 c32236c0
[528.396531] 3d20:0020000100100 00000000 c3423d84 c3423d48 c3423d48 c3223f94 c00be488
[528.405144] 3d40:60060013 ffffff
[528.408832][ ](_IRQ_Svc+0x40/0x70)从[ ](unlink_anon vmas+0x88/0x1ec)
[528.417930][ ](unlink_anon vmas+0x88/0x1ec)从[ ](FREE_PgTables + 0x88/0xdc)
[528.427379][ ](free_pgtablES+0x88/0xdc)从[ ](EXIT_mMAP+0x178/0x2c0)
[528.436279][ ](EXIT_mMAP+0x178/0x2c0)、来自[ ](mmput +0x44/0xf8)
[528.44458][ ](mmput+0x44/0xf8)、来自[ ](flush_old_exec+0x2bc/0x5c0)
[528.453090][ ](flush_old_exec+0x2bc/0x5c0)从[ ](load_elf_binary+0x308/0x12fc)
[528.462906][ ](load_elf_binary+0x308/0x12fc)、来自[ ](search_binary_handler + 0x15c/0x3d8)
[528.473365][ ](search_binary_handler + 0x15c/0x3d8)、来自[ ](do_execve+0x258/0x2c8)
[528.483185][ ](do_execve+0x258/0x2c8)、来自[ ](sys_execve+0x44/0x64)
[528.491810][ ](sys_execve+0x44/0x64)、来自[ ](RET_FAST_SYSCALL+0x0/0x30)

我们还有另外两条 Oops 消息、它们都具有不同的堆栈布线。 是否有人可以帮助澄清这个问题?

编辑:少量添加;虽然内核版本相当旧、但我在 I/O 期间移除卡时、已修补了与较新版本有关的一些更改、这些更改涉及正确完成块 I/O 请求

此致、

吉列尔梅

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    据我所知、内核3.2.61不是 TI SDK 的官方版本。
    您能否使用 SDK6.0 (内核3.3)进行测试?

    我在我的 bbb 上尝试过此操作、运行最新的 SDK、但无法重现错误。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、

    哎呀、我搞砸了。 "61"部分为内部控制。 我们的内核基于 SDK 6.00.00中的3.2.0版。

    此致、
    吉列尔梅