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.

[参考译文] AM5728:上层读取的数据与内核不一致

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1130310/am5728-the-data-read-by-the-upper-layer-is-inconsistent-with-the-kernel

器件型号:AM5728
主题中讨论的其他器件:AM4378

大家好、

以下是客户提出的问题、可能需要您的帮助:

Linux 版本: Linux 4.9.69

步骤: 内核驱动程序通过 dma_alloc_相干 请求存储器、然后通过 DMA 将 GPMC 数据移动到请求的存储器中、通过 netlink 将物理地址发送到上层应用程序、后者随后读取地址映射后的数据。  

结果: 上层读取的数据与内核不一致。 (内核保存发送到文件的地址数据、上层应用程序将数据保存到文件、比较这两个文件)  

内核驱动程序通过 dma_alloc_相干 请求存储器、然后通过 DMA 将 GPMC 数据移动到请求的存储器、在 zmalloc 中阻止地址、并通过 virt_TO_phys 将其转换为物理地址。 然后、DMA 被移动到存储器 memcpy 中的数据到新的 zmalloc 地址、并且地址被发送到上层应用、从而产生相同的数据。

将这两个文件与错误进行比较、然后发现这里的错误是先前的数据。 客户目前怀疑上层应用程序正在读取数据,并且缓存中的数据不会被清空到内存中。

am4378上的运行正常、但4378上的 Linux 版本为4.1.18。

您可以帮助检查此案例吗? 谢谢。

此致、

樱桃

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

    樱桃

    如何在 AM57xx 上重现问题? 您能分享这些步骤吗?
    这在最新的6.3 SDK 上是否也可重现? 4.19内核。


    -凯尔西

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

    您好、Keerty、

    感谢您的支持。

    [引用 userid="274047" URL"~/support/processors-group/processors/f/processors-forum/1130310/am5728-the-data-read-by-the-upper-layer-is-inconsistent-with-the-kernel/4194777 #4194777">如何重现 AM57xx 上的问题? 您能否分享这些步骤?

    内核通过 dma_allocated_相干 请求100m 的地址大小。 然后、GPMC 的数据通过 DMA 被移动到内存中

    2.内核将内存中的数据保存到文件中。

    3.内核通过 netlink 将 DMA 的物理地址发送给应用程序。 应用程序完成毫米波之后、将数据保存到文件中。

    4.比较这两个文件的内容数据,问题就出现了。

    [引用 userid="274047" URL"~/support/processors-group/processors/f/processors-forum/1130310/am5728-the-data-read-by-the-upper-layer-is-inconsistent-with-the-kernel/4194777 #4194777">这在最新的6.3 SDK 上是否也可重现? 4.19内核。[/quot]

    是的、正确。

    谢谢、此致、

    樱桃

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

    您好、Keerty、

    我是否可以知道有任何更新?

    谢谢、此致、

    樱桃

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

    您好、Keerty、

    想知道是否有后续行动? 谢谢。

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

    樱桃

    对此深表歉意。 查看上述步骤:我们是否需要向 GPMC 驱动程序添加一些代码? 您能否共享代码或应用程序来重现此问题?

     此致、

    基尔西

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

    Keerty、

    感谢您的回答。

    [引用 userid="274047" URL"~/support/processors-group/processors/f/processors-forum/1130310/am5728-the-data-read-by-the-upper-layer-is-inconsistent-with-the-kernel/4213213 #4213213"]查看上述步骤:我们是否需要向 GPMC 驱动程序添加一些代码?

    [引用 userid="274047" URL"~/support/processors-group/processors/f/processors-forum/1130310/am5728-the-data-read-by-the-upper-layer-is-inconsistent-with-the-kernel/4213213 #4213213"]是否可以共享代码或应用程序来复制此代码?

    我担心客户无法共享这些信息、因为这些信息包含机密信息。

    • 当两个文件内容数据不相同时、不同的数据完全是内核上次发送数据时写入该存储器的数据。
    • 屏蔽多核#CONFIG_SMP、#CONFIG_SMP_ON_UP、CONFIG_CPU_DCache _DISABLE=y、CONFIG_CPU_ICACHE_DISABLE=y (禁用高速缓存)。 如果重复上述过程、内核和应用程序读取的数据是一致的。

    谢谢、此致、

    樱桃

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

    您好、Cherry、

    您是否能够在最终重现? 或者您正在描述客户端的设置?

    我需要更多时间来执行这些步骤。 我下周还会回来的。

    此致、

    基尔西

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

    您好、Keerty、

    我将介绍客户方面的设置。

    已记录并期待您的回应。

    谢谢、此致、

    樱桃

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

    樱桃

    如果没有可重现的设置、我们将无法继续。 如果此问题仍然存在、请提供更多详细信息。

    此致
    Karthik