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/AM5728:内存使用问题

Guru**** 2582405 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/632658/linux-am5728-memory-usage-question

器件型号:AM5728

工具/软件:Linux

你(们)好

我们已经检查 了 C66x、IVA-HD 等的存储器使用情况 当我在 remoteproc_core.c 中打印 iommu 时、它会打印2604MB。 它是否内存不足?

让您了解 linux-4.9.28+gitAUTOINC+e43d1050-geed43d1050\drivers\remoteproc\remoteproc_core.c 的 rproc_handle_devmem

静态 int rproc_handle_devmem (struct rproc * rproc、struct fw_RSC_devmem * RSC、
         int 偏移、int 可用)

 (笑声)

printk (“DBG:RSC->da (%#x) RSC->PA (%#x) RSC->len (%d) RSC->flags (%#x) name (%s) at %s\n",RSC->da,RSC->PA,RSC->len,RSC->flags, rsc->name、__function__);
 
 RET = iommu_map (rproc->domain、RSC->da、RSC->PA、RSC->len、RSC->flags);

(笑声)

日志如下所示。 (基于 ti-processor-sdk-rtos\ipc_3_46_00_02\packages/ti\ipc\remoteproc\rsc_table_vayu_dsp.h)

[6.649159]   DBG:RSC->da (0x60000000) RSC->PA (0x9d000000) RSC->len (1048576) RSC->flags (0x0) name (IPU_MEM_IPC_VRING) at rproc_handle_devmem
[6.649178]   DBG:RSC->da (0x90000000) RSC->PA (0xba300000) RSC->len (94371840) RSC->flags (0x0) name (IPU_MEM_IOBUFS) at rproc_handle_devmem
[6.650319]   DBG:RSC->da (0xa0000000) RSC->PA (0x60000000) RSC->len (268435456) RSC->flags (0x0) name (IPU_tiler_mode_0_1) at rproc_handle_devmem
[6.650517]   DBG:RSC->da (bb00000000000) RSC->PA (0x70000000) RSC->len (134217728) RSC->flags (0x0) name (IPU_tiler_mode_2) at rproc_handle_devmem
[6.650618]   DBG:RSC->da (bbb8000000) RSC->PA (0x78000000) RSC->len (134217728) RSC->flags (0x0) name (IPU_tiler_mode_3) at rproc_handle_devmem
[6.650718]   DBG:RSC->da (0x6a000000) RSC->PA (0x4a000000) RSC->len (16777216) RSC->flags (0x0) name (IPU_PERIPS_L4CFG) at rproc_handle_devmem
[6.650734]   DBG:RSC->da (0x68000000) RSC->PA (0x48000000) RSC->len (2097152) RSC->flags (0x0) name (IPU_PERIPS_L4PER1) at rproc_handle_devmem
[6.650762]   DBG:RSC->da (0x68400000) RSC->PA (0x48400000) RSC->len (4194304) RSC->flags (0x0) name (IPU_PERIPS_L4PER2) at rproc_handle_devmem
[6.650815]   DBG:RSC->da (0x68800000) RSC->PA (0x48800000) RSC->len (8388608) RSC->flags (0x0) name (IPU_PERIPS_L4PER3) at rproc_handle_devmem
[6.650920]   DBG:RSC->da (0x74000000) RSC->PA (0x54000000) RSC->len (16777216) RSC->flags (0x0) name (IPU_PERIPS_L4EMU) at rproc_handle_devmem
[6.650982]   DBG:RSC->da (0x7a000000) RSC->PA (0x5a000000) RSC->len (16777216) RSC->flags (0x0) name (IPU_IVAHD_CONFIG) at rproc_handle_devmem
[6.650999]   DBG:RSC->da (0x7b000000) RSC->PA (0x5b000000) RSC->len (16777216) RSC->flags (0x0) name (IPU_IVAHD_SL2) at rproc_handle_devmem
[6.651015]   DBG:RSC->da (0x6e000000) RSC->PA (0x4e000000) RSC->len (1048576) RSC->flags (0x0) name (IPU_PERIPS_DMM) at rproc_handle_devmem

[6.814714]   DBG:RSC->da (0x60000000) RSC->PA (0x95800000) RSC->len (1048576) RSC->flags (0x0) rproc_handle_devmem 的名称(IPU_MEM_IPC_VRING)
[6.814732]   DBG:RSC->da (0xa0000000) RSC->PA (0x60000000) RSC->len (268435456) RSC->flags (0x0)名称(IPU_tiler_mode_0_1)位于 rproc_handle_devmem
[6.815188]   DBG:RSC->da (bbb00000000000) RSC->PA (0x70000000) RSC->len (134217728) RSC->flags (0x0) name (IPU_tiler_mode_2) at rproc_handle_devmem
[6.815290]   DBG:RSC->da (bbb8000000) RSC->PA (0x78000000) RSC->len (134217728) RSC->flags (0x0) name (IPU_tiler_mode_3) at rproc_handle_devmem
[6.815391]   DBG:RSC->da (0x6a000000) RSC->PA (0x4a000000) RSC->len (16777216) RSC->flags (0x0) name (IPU_PERIPS_L4CFG) at rproc_handle_devmem
[6.815407]   DBG:RSC->da (0x68000000) RSC->PA (0x48000000) RSC->len (2097152) RSC->flags (0x0) name (IPU_PERIPS_L4PER1) at rproc_handle_devmem
[6.815436]   DBG:RSC->da (0x68400000) RSC->PA (0x48400000) RSC->len (4194304) RSC->flags (0x0) name (IPU_PERIPS_L4PER2) at rproc_handle_devmem
[6.815491]   DBG:RSC->da (0x68800000) RSC->PA (0x48800000) RSC->len (8388608) RSC->flags (0x0) name (IPU_PERIPS_L4PER3) at rproc_handle_devmem
[6.815596]   DBG:RSC->da (0x74000000) RSC->PA (0x54000000) RSC->len (16777216) RSC->flags (0x0) name (IPU_PERIPS_L4EMU) at rproc_handle_devmem
[6.815612]   DBG:RSC->da (0x7a000000) RSC->PA (0x5a000000) RSC->len (16777216) RSC->flags (0x0) name (IPU_IVAHD_CONFIG) at rproc_handle_devmem
[6.815629]   DBG:RSC->da (0x7b000000) RSC->PA (0x5b000000) RSC->len (16777216) RSC->flags (0x0) name (IPU_IVAHD_SL2) at rproc_handle_devmem
[6.815645]   DBG:RSC->da (0x6e000000) RSC->PA (0x4e000000) RSC->len (1048576) RSC->flags (0x0) name (IPU_PERIPS_DMM) at rproc_handle_devmem

[7.788235]   DBG:RSC->da (0xa0000000) RSC->PA (0x9f000000) RSC->len (1048576) RSC->flags (0x0) name (DSP_MEM_IPC_VRING) at rproc_handle_devmem
[7.788656]   DBG:RSC->da (0xa0000000) RSC->PA (0x99000000) RSC->len (1048576) RSC->flags (0x0) name (DSP_MEM_IPC_VRING) at rproc_handle_devmem
[7.788688]   DBG:RSC->da (0x80000000) RSC->PA (0xba300000) RSC->len (94371840) RSC->flags (0x0) name (DSP_MEM_IOBUFS) at rproc_handle_devmem
[7.791356]   DBG:RSC->da (0x80000000) RSC->PA (0xba300000) RSC->len (94371840) RSC->flags (0x0) name (DSP_MEM_IOBUFS) at rproc_handle_devmem
[7.807863]   DBG:RSC->da (0x60000000) RSC->PA (0x60000000) RSC->len (268435456) RSC->flags (0x0) name (DSP_tiler_mode_0_1) at rproc_handle_devmem
[7.808294]   DBG:RSC->da (0x70000000) RSC->PA (0x70000000) RSC->len (134217728) RSC->flags (0x0) name (DSP_tiler_mode_2) at rproc_handle_devmem
[7.808986]   DBG:RSC->da (0x60000000) RSC->PA (0x60000000) RSC->len (268435456) RSC->flags (0x0) name (DSP_tiler_mode_0_1) at rproc_handle_devmem
[7.809432]   DBG:RSC->da (0x78000000) RSC->PA (0x78000000) RSC->len (134217728) RSC->flags (0x0) name (DSP_tiler_mode_3) at rproc_handle_devmem
[7.809702]   DBG:RSC->da (0x4a000000) RSC->PA (0x4a000000) RSC->len (16777216) RSC->flags (0x0) name (DSP_PERIODISAL_L4CFG) at rproc_handle_devmem
[7.809735]   DBG:RSC->da (0x48000000) RSC->PA (0x48000000) RSC->len (2097152) RSC->flags (0x0) name (DSP_PERASE_L4PER1) at rproc_handle_devmem
[7.809794]   DBG:RSC->da (0x48400000) RSC->PA (0x48400000) RSC->len (4194304) RSC->flags (0x0) name (DSP_PERPeripheral_L4PER2) at rproc_handle_devmem
[7.809908]   DBG:RSC->da (0x48800000) RSC->PA (0x48800000) RSC->len (8388608) RSC->flags (0x0) name (DSP_PERASE_L4PER3) at rproc_handle_devmem
[7.810272]   DBG:RSC->da (0x70000000) RSC->PA (0x70000000) RSC->len (134217728) RSC->flags (0x0) name (DSP_tiler_mode_2) at rproc_handle_devmem
[7.810489]   DBG:RSC->da (0x78000000) RSC->PA (0x78000000) RSC->len (134217728) RSC->flags (0x0) name (DSP_tiler_mode_3) at rproc_handle_devmem
[7.810708]   DBG:RSC->da (0x4a000000) RSC->PA (0x4a000000) RSC->len (16777216) RSC->flags (0x0) name (DSP_PERIPHERAL_L4CFG) at rproc_handle_devmem
[7.810741]   DBG:RSC->da (0x48000000) RSC->PA (0x48000000) RSC->len (2097152) RSC->flags (0x0) name (DSP_PERIPS_L4PER1) at rproc_handle_devmem
[7.810801]   DBG:RSC->da (0x48400000) RSC->PA (0x48400000) RSC->len (4194304) RSC->flags (0x0) name (DSP_PERIPS_L4PER2) at rproc_handle_devmem
[7.810915]   DBG:RSC->da (0x48800000) RSC->PA (0x48800000) RSC->len (8388608) RSC->flags (0x0) name (DSP_PERIPS_L4PER3) at rproc_handle_devmem
[7.813476]   DBG:RSC->da (0x54000000) RSC->PA (0x54000000) RSC->len (16777216) RSC->flags (0x0) name (DSP_PERUST_L4EMU) at rproc_handle_devmem
[7.813507]   DBG:RSC->da (0x4e000000) RSC->PA (0x4e000000) RSC->len (1048576) RSC->flags (0x0) name (DSP_PERipheral_DMM) at rproc_handle_devmem
[7.813438]   DBG:RSC->da (0x45c00000) RSC->PA (0x45c00000) RSC->len (12582912) RSC->flags (0x0) name (DSP_MCASP2) at rproc_handle_devmem
[7.8138666]   DBG:RSC->da (0x43300000) RSC->PA (0x43300000) RSC->len (1048576) RSC->flags (0x0) name (DSP_EDMA) at rproc_handle_devmem
[7.813896]   DBG:RSC->da (0x43400000) RSC->PA (0x43400000) RSC->len (1048576) RSC->flags (0x0) name (DSP_EDMA_TC0) at rproc_handle_devmem
[7.813927]   DBG:RSC->da (0x43500000) RSC->PA (0x43500000) RSC->len (1048576) RSC->flags (0x0) name (DSP_EDMA_TC1) at rproc_handle_devmem
[7.813957]   DBG:RSC->da (0x40d10000) RSC->PA (0x40d10000) RSC->len (32768) RSC->flags (0x0) name (DSP_EDMA_channel) at rproc_handle_devmem
[7.814230]   DBG:RSC->da (0x40d05000) RSC->PA (0x40d05000) RSC->len (4096) RSC->flags (0x0) name (DSP_EDMA_TC0_trans) at rproc_handle_devmem
[7.814260]   DBG:RSC->da (0x40d06000) RSC->PA (0x40d06000) RSC->len (4096) RSC->flags (0x0) name (DSP_EDMA_TC1_TRANS) at rproc_handle_devmem
[7.814824]   DBG:RSC->da (0x54000000) RSC->PA (0x54000000) RSC->len (16777216) RSC->flags (0x0) name (DSP_PERUST_L4EMU) at rproc_handle_devmem
[7.814856]   DBG:RSC->da (0x4e000000) RSC->PA (0x4e000000) RSC->len (1048576) RSC->flags-0x0) name (DSP_peripheral_DMM) at rproc_handle_devmem
[7.814887]   DBG:RSC->da (0x45c00000) RSC->PA (0x45c00000) RSC->len (12582912) RSC->flags (0x0) name (DSP_MCASP2) at rproc_handle_devmem
[7.815298]   DBG:RSC->da (0x43300000) RSC->PA (0x43300000) RSC->len (1048576) RSC->flags (0x0) name (DSP_EDMA) at rproc_handle_devmem
[7.815330]   DBG:RSC->da (0x43400000) RSC->PA (0x43400000) RSC->len (1048576) RSC->flags (0x0) name (DSP_EDMA_TC0) at rproc_handle_devmem
[7.815362]   DBG:RSC->da (0x43500000) RSC->PA (0x43500000) RSC->len (1048576) RSC->flags (0x0) name (DSP_EDMA_TC1) at rproc_handle_devmem
[7.815393]   DBG:RSC->da (0x40d10000) RSC->PA (0x40d10000) RSC->len (32768) RSC->flags (0x0) name (DSP_EDMA_channel) at rproc_handle_devmem
[7.817061]   DBG:RSC->da (0x40d05000) RSC->PA (0x40d05000) RSC->len (4096) RSC->flags (0x0) name (DSP_EDMA_TC0_trans) at rproc_handle_devmem
[7.817093]   DBG:RSC->da (0x40d06000) RSC->PA (0x40d06000) RSC->len (4096) RSC->flags (0x0) name (DSP_EDMA_TC1_TRANS) at rproc_handle_devmem

RSC->len 总数  

2730573824.  

 它几乎是2604MB。  但是、我们的系统具有2GB (DDR3)。

 它是否会在内存不足时发生? 它是否太危险? 是否将我们的容量从2GB 增加到4GB?

 我们在  rsc_table_vayu_dsp.h 上是否消除了任何(例如,DSP_tiler_mode_XX)无用信息?

我们的系统已按如下方式开发。

-三个显示屏

- 3D GPU、2D GPU -> GUI

->全高清视频解码

->摄像机编码

->使用 c66x 进行多音频处理。

非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Joonho、

    如果我正确理解日志、一些虚拟地址会映射到相同的物理地址。 在这种情况下、不能对使用长度进行多次计数。 在这种情况下、总长度为651MB。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    感谢您快速回答问题。
    我不能使用相同的物理地址。 我们得到的总长度为1396744192 (1332MB)而不是651MB。

    计算值如下所示。

    Len物理地址
    10485760x9d000000
    943718400xba300000
    2684354560x60000000
    1342177280x70000000
    1342177280x78000000
    167772160x4a000000
    20971520x48000000
    41943040x48400000
    83886080x48800000
    167772160x54000000
    167772160x5a000000
    167772160x5b000000
    10485760x4e000000
    10485760x95800000
    2684354560x60000000
    1342177280x70000000
    1342177280x78000000
    10485760x9f000000
    10485760x99000000
    943718400xba300000
    10485760x4e000000
    125829120x45c00000
    10485760x43300000
    10485760x43400000
    10485760x43500000
    327680x40d10000
    40960x40d05000
    40960x40d06000
    167772160x54000000
    10485760x4e000000
    125829120x45c00000

    共计1396744192
    1332MB

    您能再检查一下吗?
    非常感谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Joonho、

    您仍然具有重复的地址。 我使用了一个 Excel 电子表格、并按物理地址排序、这使得它们非常明显。 我建议您也这样做。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好
    非常感谢您教授 Excel 进行排序。
    我是 Excel 初学者。
    我通过 Excel 排序获得结果。

    Len物理地址
    40960x40d05000
    40960x40d06000
    327680x40d10000
    10485760x43300000
    10485760x43400000
    10485760x43500000
    125829120x45c00000
    20971520x48000000
    41943040x48400000
    83886080x48800000
    167772160x4a000000
    10485760x4e000000
    00 0
    167772160x54000000
    167772160x5a000000
    167772160x5b000000
    2684354560x60000000
    1342177280x70000000
    1342177280x78000000
    10485760x95800000
    10485760x99000000
    10485760x9d000000
    10485760x9f000000
    943718400xba300000

    总计734044160 (约700MB)

    我们的系统需要700MB 用于 C66x 和 IVA-HD。

    非常感谢。