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/DRA72XEVM:OpenGL 库内存泄漏

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/668715/linux-dra72xevm-opengl-library-memory-leak

器件型号:DRA72XEVM

工具/软件:Linux

我的 SDK 版本是 ti-processor-sdk-linux-Automotive-dra7xx-evm-03_04_00_03

它将在运行 kmscube 后导致内存泄漏。

一次测试后、内存泄漏大小约为100KB。

我跟踪源代码,尽管 exit_gl()调用了函数 init_gl(),但内存泄漏发生在函数 init_gl()上。

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

    我们需要更多详细信息来了解您刚才提到的问题报告。

    您能否分享用于跟踪 init_gl()函数泄漏的方法?
    如果您有任何实验的详细日志可以帮助我们、请分享。

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

    观察内存泄漏的方法如下所示:
    在测试用例前后运行"free"命令、然后比较可用存储器大小。

    测试案例1:对官方 kmscube 不做任何更改

    测试案例2:此类虚假代码:
    main(){
    init_drm();
    init_GBM();
    init_gl();
    //删除渲染代码
    exit_gl();
    EXIT_GBM();
    exit_drm();


    测试案例3:此类虚假代码:
    main(){
    init_drm();
    init_GBM();
    EXIT_GBM();
    exit_drm();



    测试案例1:存在内存泄漏
    测试案例2:存在内存泄漏
    测试案例3:无内存泄漏,运行正常
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在错误的 rootfs 版本上进行测试,导致此问题。
    版本 ti-processor-sdk-linux-Automotive-dra7xx-evm-03_04_00_03的 OpenGL 上没有内存泄漏
    很抱歉造成这种混淆。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此问题在我的自定义 rootfs 上发生。
    我从非物理 rootfs 中进行了更改:
    1.将 systemd 替换为 busybox 初始化
    2.将 udev 替换为 busybox mdev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ya Lin、

    有了可用的信息、我就不能再想进一步调试它了。 没有指示泄漏来源的指针。
    我请求您提供更多信息、以便 TI 对此进行进一步研究。

    此致
    Karthik