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:SDK 8.0补丁问题

Guru**** 2589280 points
Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/589610/linux-am3352-sdk-8-0-patch-question

器件型号:AM3352

工具/软件:Linux

尊敬的所有人:

我们的产品基于 AM3352和 AMSDKv8.0。 我们发现 、CPSW 以太网性能将变得缓慢、并且在运行 iperf 或 vsftpd 应用程序几分钟(大约一分钟)后、CPU 利用率将达到100%。

此问题也会在本主题中报告:https://e2e.ti.com/support/arm/sitara_arm/f/791/t/586788

使用 SDK 01.00.00.03可以解决此问题。 此外、我在 AMSDK v8.0中发现了以下补丁会导致问题。

但我 不明白 原因。 您能给我解释一下吗:
1.为什么有关 AMSDK v8.0中 mailbox-wkup_m3模块的补丁会影响 CPSW 以太网性能并导致 CPU 利用率非常高?
2. SDK v01.00.03中的哪些修补程序可以解决此问题?


========================================================================================
提交2e560903e75ef790fd0428dbb53f65a2ee1ad4c6
作者:Dave Gerlach
日期:2014年12月10日04:18:16日+0000

邮箱/OMAP:添加 ti、mbox-send-noirq 查询以修复 AM33xx CPU 空闲

邮箱框架控制传输队列并需要
控制器实现或客户端来运行状态
TX 队列的机器。 OMAP 邮箱控制器使用 Tx 就绪
中断相当于运行此 Tx 的 Tx 完成中断
队列状态机。

AM33xx 和 AM43xx SoC 上的 WkupM3处理器用于减轻负载
某些 PM 任务、如对器件执行必要的操作
PM 挂起/恢复或用于在空闲期间进入较低的 c 状态。

AM33xx 上的 CPUIdle 要求在不发送消息的情况下发送消息
必须触发 Tx 就绪中断、作为中断
将立即终止 CPUIdle 操作。 支持
通过引入 DT quirk、"ti、mbox-send-noirq"、添加了这一点
并使用它来修改正常的 OMAP 邮箱控制器行为
用于与 WkupM3远程设备通信的子邮箱上
处理器。 这还需要调整 wkup_m3_IPC 驱动器
运行 Tx 状态机的邮箱使用逻辑。

注:
- AM43xx 在 CPU 空闲时不与 WkupM3通信
不受此行为影响。 但是、它使用相同的 IPC 驱动程序
对于 PM 挂起/恢复功能、因此需要使用的查询
嗯、因为常见 wkup_m3_IPC 驱动器发生了变化。

签字人:Dave Gerlach
[ s-anna@ti.com:修改逻辑并更新注释/补丁说明]
签字人:苏门·安娜

文档/devicetree/bindings/mailbox/omap-mailbox.txt | 8 ++++++++++
驱动程序/邮箱/OMAP-mailbox.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ----
2个文件已更改,58个插入(+),4个删除(-)

========================================================================================

屏幕截图( 当进行 FTP 传输时、CPU 利用率为100%)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在 Processor-SDK-v01.00.03中找到以下 commit 修复了该问题。 提交中的注释详细解释了原因。 非常感谢!

    ========================================================================================================
    提交338a690623badfc3bc3eb6ddc7302e03ab33e6ba
    作者:Dave Gerlach
    日期:2014年3月26日13:41:47 2015年-0500

    ARM:OMAP2+:cpuidle33xx:更改 wkup_m3空闲状态以避免 MPU PLL 旁路

    为了在 cpuidle 中进入 c1状态、am33xx 目前使用 wkup_m3进行门控
    并旁路 MPU PLL。 因为我们不会关闭
    在该 C 状态下、在 MPU 电源域之外、两者都是可能的
    唤醒并同时执行、我们没有能力
    在 cputleidle 路径中的两个之间执行同步、原因是
    无中断上下文。

    这会导致两者之间在某些情况下出现频率行为
    其中、通常在 CPU 活动较高期间进入 C1状态
    可能会干扰 wkup_m3上的唤醒路径、
    这可防止 MPU PLL 被重新锁定并导致极端情况
    系统减速。

    因此、我们现在必须使用上可用的不同空闲状态
    当前的 wkup_m3固件(0x190)、其作用只不过是放置
    将 MPU 时钟域设置为睡眠模式、从而实现与之前相同的功耗节省
    之前在 MPU 电源轨上运行、但上的功率稍高
    MPU_PLL 电压轨。

    签字人:Dave Gerlach

    arch/arm/mach-OMAP2/pm33xx.h | 2 +-
    1个文件已更改,1个插入(+),1个删除(-)

    ========================================================================================================