Ampliación del límite de 4 MB del kernel para asignaciones de memoria utilizando la API DMA - dma_alloc_coherent

Ampliación del límite de 4 MB del kernel para asignaciones de memoria utilizando la API DMA - dma_alloc_coherent

Estoy usando Ubuntu 16.04 y me gustaría usar dma_alloc_coherent para asignar un búfer DMA (sin caché) de más de 4 MB. Cuando intento hacer esto, la llamada devuelve NULL. Probé los indicadores del kernel CONFIG_DMA_CMA, etc. para habilitar la asignación a través del asignador de memoria contigua. Veo que la memoria CMA está reservada y veo que cma_allocator asigna la memoria, pero todavía no puedo superar los 4 MB a pesar de que la memoria se ha reservado para mi controlador a través del asignador CMA.

Respuesta1

CONFIG_DMA_CMA es un indicador de compilación del kernel. A menos que sepa que su kernel se ha compilado con esto. De lo contrario, necesitará un kernel personalizado. Parece que la versión principal de RHEL y Ubuntu no habilita esta opción.

información relacionada