内核中分配512MB DMA缓冲区失败的问题求助
内核中分配512MB DMA缓冲区失败的问题求助
我尝试了两种DMA内存分配方式,当分配大小超过4MB时都失败了:
- 使用
dma_alloc_coherent:virt_addr = dma_alloc_coherent(dma_dev, alloc_size, &phys_addr, GFP_KERNEL ); - 使用
dma_pool_create+dma_pool_alloc:mypool = dma_pool_create("mypool", dma_dev, alloc_size, pool_align, 0); virt_addr = dma_pool_alloc(mypool, GFP_ATOMIC , &phys_addr);
另外我发现当前内核(版本5.19.0-32-generic)没有开启CONFIG_CMA配置。请问这种情况下该如何分配512MB大小的DMA缓冲区呢?
谢谢!
备注:内容来源于stack exchange,提问作者dxyzhou-tiger
相关产品推荐
相关产品推荐

