工具/软件:Linux
您好!
客户在使用定制 AM3352板时遇到问题。 EDMA 驱动程序基本上似乎无法分配内存、这会导致文件系统变成只读、因为对 eMMC 的访问失败。 这在内核版本 4.4.32+(SDK8)的多个电路板中是可重复的。
这是 DMSG 日志
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板时遇到问题。 EDMA 驱动程序基本上似乎无法分配内存、这会导致文件系统变成只读、因为对 eMMC 的访问失败。 这在内核版本 4.4.32+(SDK8)的多个电路板中是可重复的。
这是 DMSG 日志
Jani 您好、
[报价用户="Jani Okker"]客户的定制 AM3352 板出现问题。
您能否在 AM335x TI EVM 上重新生成此问题?
[引用 user="Jani Okker"]基本上似乎 EDMA 驱动程序无法分配内存
您是否正在尝试从 DDR3 RAM 分配内存?
[报价用户="Jani Okker"]这在多个电路板中是可重复的[/报价]
您是否意味着您的某些定制电路板仅受到影响? 其余的工作正常吗?
[引用 user="Jani Okker"]内核版本, 4.4.3.32+(SDK8)[/引用]
SDK8 (ti-SDK-AM335x-EVM-08.00.00.00)随 Linux 内核3.14.26提供
最新的 PSDK (ti-processor-sdk-linux-am335x-evm-03.02.00.05)随 Linux 内核4.4.3.2一起提供。
您使用哪一个? SDK8或 PSDK3.2?
此致、
帕维尔
您好、Pavel、
客户(或我自己)尚未尝试使用 EVM、需要检查为 EVM 重新创建类似测试应用的可行性。
从 dmesg 日志中、我得出的结论是问题来自以下 EDMA 驱动程序代码:
edesc = kzalloc (sizeof (* edesc)+ sg_len * sizeof (edesc->pset[0])、 GFP_Atomic); if (!edesc){ dev_err (dev、"%s":未能分配描述符\n"、__func__); return NULL; }
所有电路板都会受到影响、但重现此问题可能需要2周时间。
很抱歉、我在 SDK 版本上出错、客户使用 PSDK 中的4.4.4.32+内核(因此不是 SDK8)。
BR、
Jani
[引用 user="Pavel]Jani、
关于内存泄漏,它可能是由 EDMA 驱动程序或您的应用程序引起的。
关于 EDMA 驱动程序,您能否检查是否为使用 kzalloc ()分配的每个 edesc 调用了 EDMA_desc_free()?
您好、Pavel、
嗯、这也正是我所怀疑的(EDMA 驱动器中的内存泄漏)。 由于这是我们 SDK/Linux 内核开发的一部分、我认为开发人员/SDK 应用 ENGS 或许最好检查一下这个问题?
有关您的信息,请参阅随附的 dmesg 日志。
Jani 您好、
[引用用户="Jani Okker"]这也正是我所怀疑的(EDMA 驱动程序中的内存泄漏)[/quot]
EDMA 驱动程序已经过测试、我们没有任何与 EDMA 驱动程序内存泄漏有关的已知问题:
我建议您使用 EDMA 测试应用和/或 McASP/Audio、SPI、MMC/SD 和/或 Crypto 驱动程序检查 EDMA 驱动程序。 这些驱动程序使用的是 EDMA 驱动程序、因此您可以使用(例如)音频应用程序测试 EDMA 驱动程序。
有关更多信息、请参阅以下链接:
[引用 user="Jani Okker"]有关您的信息,内核4.10.4[/引用]也重现了此问题。
TI 未正式测试和支持此内核。 官方内核(经过测试和支持)为4.32 (PSDK3.02)和4.41 (PSDK3.03)
此致、
帕维尔