请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TDA4VM 工具与软件:
您好!
我将致力于为 TI TDA4VM 平台实现存储器管理器、在从 A72内核上的共享存储器区域(DDR)分配存储器时会遇到性能问题。
我正在使用 RTOS SDK 中 APP_UTILS 模块的共享内存分配器(APP_MEM_LINUX_DMA_HEAP.c)来分配内存。 allocate()函数主要涉及两个子函数:
DmaHeapAlloc:status = DmaHeapAlloc (obj->dma_heap_fd、size、flags、&dma_buf_fd);
该步骤在内部使用 ioctl()等系统调用、平均需要24微秒。
AddTupleToList : status = AddTupleToList(dma_buf_fd , size,&virtual_ptr ,&phys_addr);
这个步骤涉及 ioctl()、mmap()和 munmap()、平均需要36微秒。
总体而言、分配过程平均需要约55微秒、这对于我们的用例非常重要。
您能建议任何优化策略来提高共享内存分配的性能吗?
是否有替代实现或方法可以尝试减少这些系统调用的开销?
是否有替代实现或方法可以尝试减少这些系统调用的开销?
谢谢!