Расширение предела ядра в 4 МБ для выделения памяти с использованием API DMA - dma_alloc_coherent

Я использую Ubuntu 16.04, и я хотел бы использовать dma_alloc_coherent для выделения буфера DMA (без кэширования), который больше, чем 4 МБ. Когда я пытаюсь сделать это, вызов возвращает NULL. Я пробовал флаги ядра CONFIG_DMA_CMA и т. Д., Чтобы разрешить выделение через непрерывный распределитель памяти. Я вижу, что память CMA резервируется, и я вижу, что cma_allocator выделяет память, но я все еще не могу получить больше 4 МБ, даже если память была зарезервирована для моего драйвера через распределитель CMA.

0 ответов

CONFIG_DMA_CMA - флаг компиляции ядра. Если вы не знаете, что ваше ядро ​​скомпилировано с этим. В противном случае вам нужно настроенное ядро. Похоже, что основной выпуск RHEL и Ubuntu не включают эту опцию.

Другие вопросы по тегам