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.

[参考译文] TDA4VM:VxReleased Graph 被阻止、未返回

Guru**** 2487425 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1441497/tda4vm-vxreleased-graph-is-blocked-and-does-not-return

器件型号:TDA4VM

工具与软件:

问题现象:

最近、在我正在切换进程并释放 TI 资源的一个项目中、我偶尔会发现、在调用 vxReleased Graph 时、它被阻止、但没有返回(概率1/20)。 具体过程为:
1.进程启动,初始化
2.....
3.收到进程退出命令
4.....
5. VxRelease 节点--正常
6. TivxTaskDelete --确定
7. VxRelease 图--确定
8.....
9.进程退出正常
10. (重复此操作多次、直至20次正常)
11、第20个上拉过程,初始化
12.....
13.收到进程退出命令
14.....
15. VxRelease 节点--正常
16. TivxTaskDelete --确定
17. VxRelease 图-阻塞

TDA4版本:SDK 8.4;QNX 系统


你能帮助诊断在什么情况下 vxReleaseGraph 阻止和不返回?

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

    您好!

    当您运行图形时,当收到退出命令时,是否可以调用 vxWaitGraph ()? 这将确保图形执行完成。  

    在这之后,当你调用 vxReleaseGraph,它不应该挂起。

    这是我可能想到的一种情况。 您能在最后尝试一下吗?

    此致、

    Nikhil

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

    该图形由节点和任务组成。 节点和任务已释放并退出。 我们是否仍需要调用 vxWaitGraph?
    也就是说、完成发布过程需要满足以下条件:
    1. VxRelease 节点
    2. TivxTaskDelete
    3. VxWaitGraph
    4. VxRelease 图
    是这样吗?

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

    我知道现在一切都在管道中。 加入和离开管道中的团队相当于 vxGraphParameterDequeueDoneref
    vxRelease Graph 隐式嵌入其中。

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

    您好!

    加入并离开管道团队相当于 vxGraphParameterDequeueDoneref
    vxRelease 图形隐式嵌入其中。

    很抱歉、您在此查询的内容不正确。

    您可以详细说明一下吗?

    此致、

    Nikhil

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

    我现在明白你的意思了。 我有两个线程、ThreadA 和 ThreadB、如下图所示。

    ThreadA 创建 ThreadB、而 ThreadB 创建并运行图形。 如果 ThreadB 中的图形在 ThreadA 中被破坏、可能会存在同步问题。 ThreadB 中图形的流水线可能已完成排队(vxGraphParameterQueueReadyRef)并且还没有时间去迭(vxGraphParameterDequeueDoneERef)。 然后、当 ThreadA 开始调用 vxRelieGrpah 以破坏 ThreadB 中的 Graph 时、它可能会阻塞。 是这样吗?
    解决方案是在队列完成后(vxGraphParameterQueueReadyRef)的 ThreadB 图形流水线中调用 VxWaitGraph、然后调用 Dequeue (vxGraphParameterDequeDoneERef)、对吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="631070" url="~/support/processors-group/processors/f/processors-forum/1441497/tda4vm-vxreleased-graph-is-blocked-and-does-not-return/5529819 #5529819"]解决方案是在队列完成后、在 ThreadB 的图形流水线中调用 VxWaitGraph (vxGraphParameterEnqueueReadyRef)、然后调用 Dequeue (vxGraphParameterDequeueDoneERef)、对吗?

    是的、是这样。 这将确保同步。  

    此致、

    Nikhil

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

    谢谢~