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.

[参考译文] TDA4VH-Q1:页面缓存测试后 IPC 测试(vx_app_arm_ipc.out)失败

Guru**** 2482105 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1439537/tda4vh-q1-ipc-test-vx_app_arm_ipc-out-failure-after-page-cache-test

器件型号:TDA4VH-Q1

工具与软件:

您好、TI。

在我的应用程序中、我观察到 C7x DSP 在执行期间暂停。

当页面缓存定期中断时、此问题似乎有所改善。


在分析过程中、我发现vx_app_arm_ipc.out运行大小为32GB 的页面缓存测试后失败、

超出了 TI 分发的预编译映像中配置的存储器。

是否有解决此问题的方法?

我正在使用中 PROCESSOR-SDK-RTOS J784S4版本9.2 .
随附了用于测试的命令和日志。

/opt/vision_apps# source vision_apps_init.sh
/opt/vision_apps# ./vx_app_arm_ipc.out
/opt/vision_apps# fio --name=cache_test --size=2G --rw=read --bs=4096 --ioengine=sync --direct=0 --numjobs=16
/opt/vision_apps# ./vx_app_arm_ipc.out

/cfs-file/__key/communityserver-discussions-components-files/791/MobaXterm-terminal-output.txt

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

    您好!

    您是在默认 SDK 中看到此情况、还是在这里进行了任何与存储器相关的更改?

    此致、

    Nikhil

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

    你(们)好

    没有与存储器相关的修改。 我使用了分布式二进制文件和128GB SD 卡。

    我按照下面的指南创建了 SD 卡。
    2.2.1.1. J784S4开箱即用演示—Processor SDK RTOS J784S4

    谢谢

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

    您好!

    我能够在我的最后重现这一点 我将在内部向团队核实这一点。

    我可以知道、为什么在执行高速缓存测试时出现此邮箱错误? 还是关注点在下方?

    [报价用户 id="379840" url="~/support/processors-group/processors/f/processors-forum/1439537/tda4vh-q1-ipc-test-vx_app_arm_ipc-out-failure-after-page-cache-test "]

    在我的应用程序中、我观察到 C7x DSP 在执行期间暂停。

    当页面缓存定期中断时、此问题似乎有所改善。

    [报价]

    此致、

    Nikhil

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

    您好、Nikhil

    感谢您的答复。

    我想了解 C7x DSP 停止问题的根本原因以及如何避免这种问题。

    我们的定制电路板上也遇到类似问题。
    我希望这次讨论有助解决问题。

    谢谢你。

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

    您好!

    我为此提出了内部 JIRA  

    在此处放置 JIRA 链接以进行 TI 内部跟踪  

    [ADASVISION-6433][J784s4]运行 FIO cache_test 时 IPC 失败-德州仪器(TI) JIRA

    同时、您能帮助我了解下面这个函数到底在做什么吗?

    fio --name=cache_test --size=2g --rw=read --bs=4096 --iEngine=sync --direct=0 --numjobs=16

    这是否会更改 DDR 2GB 区域的高速缓存属性?

    此致、

    Nikhil

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

    您好!

    我为此提出了内部 JIRA  

    在此处放置 JIRA 链接以进行 TI 内部跟踪  

    [ADASVISION-6433][J784s4]运行 FIO cache_test 时 IPC 失败-德州仪器(TI) JIRA

    同时、您能帮助我了解下面这个函数到底在做什么吗?

    fio --name=cache_test --size=2g --rw=read --bs=4096 --iEngine=sync --direct=0 --numjobs=16

    这是否会更改 DDR 2GB 区域的高速缓存属性?

    此外、运行此命令后、DSP 内核是否仍然正常工作? 这可能是任何一个邮箱消息发送失败消息的原因...

    此致、

    Nikhil

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

    你(们)好

    1.此测试旨在利用几乎所有的页面缓存。
    它生成2GB 的测试数据(--size=2G)并执行16个读操作(--numjobs=16)。
    测试完成后、运行该free命令会显示大部分存储器用作页缓存。

    fio --name=cache_test --size=2G --rw=read --bs=4096 --ioengine=sync --direct=0 --numjobs=16


    2.我在 DSP 固件的主要任务中添加了代码、每1ms 打印一次控制台消息、但 DSP 在测试过程中停止。


    此致。

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

    您好!

    此测试是否可以在先前版本的 SDK 中正常工作、以及在9.2中不工作?

    此外、我假设该测试正在尝试模拟 您启用的一些用例、您有关于该用例的任何详细信息吗?  这 可能有助于我们更好地了解故障背景。

    此致、

    卢卡斯

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

    我们尚未在以前的版本中测试此功能。
    不过、J721s2上的 PSDK 9.2没有问题。

    我的应用旨在检测视频流中的对象。
    为了测试性能、我将一段长时间的视频保存到文件中、并使用该文件作为物体检测的输入。

    谢谢你。

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

    您好!

    我在最新版本的 SDK 上进行了相同的测试。 即 j721s2和 j784s4 SDK 10.0、正如您所提到的、我发现 J721s2没有问题、但只有 J784s4有问题。

    我将使用上述 JIRA 在内部检查相关情况。

    但正如 Lucas 提到的、 您在演示中看到的实际问题是什么。

    目前、该线程已为使 DSP 崩溃的开源高速缓存测试打开、但我认为这不是实际的问题。 与演示中的情况类似、会发生什么?

    您能否详细说明一下、以便我们能够集中精力解决那里的问题?

    此致、

    Nikhil

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

    你(们)好

    此测试是我在演示中遇到的问题的简化版本。
    当高速缓存使用率较高或可用内存低于1.5GB 时、我认为 DSP 将停止工作。

    在我的演示中、C7x 在处理超过4000个图像帧后因未知原因停止运行。
    当我在执行过程中清除 Linux 的缓存时、程序运行时间会稍微长一点。
    此外、修改文件处理功能以避免使用页面缓存、允许程序运行超过两天。

    使用摄像头的其他演示程序也会出现同样的问题。

    我希望本线程中的问题解决将帮助我分析基于摄像头的程序中问题的根本原因。

    此致。

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

    您好!

    很抱歉耽误你的时间。

     Linux SDK 中${PSDKLA}/board-support/ti-linux-kernel-xx 中的以下补丁并重新编译 k3-j784s4-vision-apps.dtbo 将修复此问题

    /cfs-file/__key/communityserver-discussions-components-files/791/C7x_5F00_fix.patch

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

    你(们)好

    我应用了您提供的补丁并重建 Linux 内核。

    • 让 Linux 成为可能

    我复制了生成的结果 k3-j784s4-vision-apps.dtbo 目标位置 /boot/ti 但在运行时会发生以下错误。

    root@j784s4-evm:/opt/vision_apps# ./vx_app_arm_ipc.out
    APP: Init ... !!!
    APP_LOG: ERROR: Unable to map memory @ 0xb1000000 of size 3288576 bytes !!!
    APP: ERROR: File IO writer init failed !!!
    APP: Init ... Done !!!
    APP IPC: Done !!!
    root@j784s4-evm:/opt/vision_apps#


    Dtbo : /cfs-file/__key/communityserver-discussions-components-files/791/0250.k3_2D00_j784s4_2D00_vision_2D00_apps.zip

    完整日志: /cfs-file/__key/communityserver-discussions-components-files/791/MobaXterm-terminal-output.log

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

    您好!  

    我提供的补丁适用于 SDK 10.0。  
    我认为 SDK 9.2具有不同的存储器区域或大小。

    您能否比较 RTOS 和 Linux vision_apps RTOS 存储器映射并确保两者相同、c7x 区域大小相同?

    此致、

    Nikhil

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

    之前提供的dtbo文件是在 PSDK 9.2中手动修补和创建的。
    提供的修补程序在版本9.2中手动修改、如下所示、从更c71_0改为c71_3

    之前:  

    vision_apps_C71_0_memory_region:vision-apps-C71_0-memory@b2100000{
    compatible ="共享 DMA-POOL";
    REG =<0x00 0xb2100000 0x00 0x00504000>;
    无地图;
    };

    之后:  

    vision_apps_C71_0_memory_region:vision-apps-C71_0-memory@b2100000{
    compatible ="共享 DMA-POOL";
    REG =<0x00 0xb2100000 0x00 0x01f00000>;
    无地图;
    };

    在 RTOS 中检查存储器映射后、确认匹配修改后的大小。

    vision_apps/platform/j784s4/rtos/app_mem_map.h

    /* DDR for C7x_1 for all sections, used for reserving memory in DTS file [ size 31.00 MB ] */
    #define DDR_C7x_1_DTS_ADDR (0xB2100000u)
    #define DDR_C7x_1_DTS_SIZE (0x01F00000u)
    
    /* DDR for C7x_2 for Linux IPC [ size 1024.00 KB ] */
    #define DDR_C7x_2_IPC_ADDR (0xB4000000u)
    #define DDR_C7x_2_IPC_SIZE (0x00100000u)
    
    /* DDR for C7x_2 for all sections, used for reserving memory in DTS file [ size 31.00 MB ] */
    #define DDR_C7x_2_DTS_ADDR (0xB4100000u)
    #define DDR_C7x_2_DTS_SIZE (0x01F00000u)
    
    /* DDR for C7x_3 for Linux IPC [ size 1024.00 KB ] */
    #define DDR_C7x_3_IPC_ADDR (0xB6000000u)
    #define DDR_C7x_3_IPC_SIZE (0x00100000u)
    
    /* DDR for C7x_3 for all sections, used for reserving memory in DTS file [ size 31.00 MB ] */
    #define DDR_C7x_3_DTS_ADDR (0xB6100000u)
    #define DDR_C7x_3_DTS_SIZE (0x01F00000u)
    
    /* DDR for C7x_4 for Linux IPC [ size 1024.00 KB ] */
    #define DDR_C7x_4_IPC_ADDR (0xB8000000u)
    #define DDR_C7x_4_IPC_SIZE (0x00100000u)

    您能否提供一个dtbo适用于9.2版的文件?

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

    您好!

    在您的日志中、我可以在 uboot 中看到以下内容

    无法加载"/boot/dtb/ti/k3-j784s4-vision-apps-no-r5f-display_evm.dtbo "

    显示您与 vision_apps 存储器映射的重叠部分未加载。

    您能在此处查看路径吗?

    此致、

    Nikhil

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

    你(们)好

    抱歉、我的错。 我在错误的环境中进行了测试。
    我确认、在正确的环境中进行测试后、问题得到了解决。

    /cfs-file/__key/communityserver-discussions-components-files/791/0880.MobaXterm-terminal-output.log

    非常感谢 TI 的技术支持

    此致、
    朴准佑